OpenCV  3.3.0-dev
Open Source Computer Vision
Public Types | Public Member Functions | List of all members
cvflann::L2< T > Struct Template Reference

#include "dist.h"

Public Types

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

Public Member Functions

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 Description

template<class T>
struct cvflann::L2< T >

Squared Euclidean distance functor, optimized version

Member Typedef Documentation

◆ ElementType

template<class T >
typedef T cvflann::L2< T >::ElementType

◆ is_kdtree_distance

template<class T >
typedef True cvflann::L2< T >::is_kdtree_distance

◆ is_vector_space_distance

template<class T >
typedef True cvflann::L2< T >::is_vector_space_distance

◆ ResultType

template<class T >
typedef Accumulator<T>::Type cvflann::L2< T >::ResultType

Member Function Documentation

◆ accum_dist()

template<class T >
template<typename U , typename V >
ResultType cvflann::L2< T >::accum_dist ( const U &  a,
const V &  b,
int   
) const
inline

Partial euclidean distance, using just one dimension. This is used by the kd-tree when computing partial distances while traversing the tree.

Squared root is omitted for efficiency.

◆ operator()()

template<class T >
template<typename Iterator1 , typename Iterator2 >
ResultType cvflann::L2< T >::operator() ( Iterator1  a,
Iterator2  b,
size_t  size,
ResultType  worst_dist = -1 
) const
inline

Compute the squared Euclidean distance between two vectors.

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

The computation of squared root at the end is omitted for efficiency.


The documentation for this struct was generated from the following file: