CEuclidianDistance Class Reference


Detailed Description

class EuclidianDistance

The familiar Euclidian distance for real valued features computes the square root of the sum of squared disparity between the corresponding feature dimensions of two data points.

\[\displaystyle d({\bf x},{\bf x'})= \sqrt{\sum_{i=0}^{n}|{\bf x_i}-{\bf x'_i}|^2} \]

This special case of Minkowski metric is invariant to an arbitrary translation or rotation in feature space.

The Euclidian Squared distance does not take the square root:

\[\displaystyle d({\bf x},{\bf x'})= \sum_{i=0}^{n}|{\bf x_i}-{\bf x'_i}|^2 \]

See also:
CMinkowskiMetric
Wikipedia: Distance in Euclidean space

Definition at line 41 of file EuclidianDistance.h.

Inheritance diagram for CEuclidianDistance:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CEuclidianDistance ()
 CEuclidianDistance (CSimpleFeatures< float64_t > *l, CSimpleFeatures< float64_t > *r)
virtual ~CEuclidianDistance ()
virtual bool init (CFeatures *l, CFeatures *r)
virtual void cleanup ()
virtual bool load_init (FILE *src)
virtual bool save_init (FILE *dest)
virtual EDistanceType get_distance_type ()
virtual EFeatureType get_feature_type ()
virtual const char * get_name () const
virtual bool get_disable_sqrt ()
virtual void set_disable_sqrt (bool state)

Protected Member Functions

virtual float64_t compute (int32_t idx_a, int32_t idx_b)

Protected Attributes

float64_t scale
bool disable_sqrt

Constructor & Destructor Documentation

CEuclidianDistance::CEuclidianDistance (  ) 

default constructor

Definition at line 17 of file EuclidianDistance.cpp.

CEuclidianDistance::CEuclidianDistance ( CSimpleFeatures< float64_t > *  l,
CSimpleFeatures< float64_t > *  r 
)

constructor

Parameters:
l features of left-hand side
r features of right-hand side

Definition at line 23 of file EuclidianDistance.cpp.

CEuclidianDistance::~CEuclidianDistance (  )  [virtual]

Definition at line 30 of file EuclidianDistance.cpp.


Member Function Documentation

void CEuclidianDistance::cleanup (  )  [virtual]

cleanup distance

Implements CDistance.

Definition at line 42 of file EuclidianDistance.cpp.

float64_t CEuclidianDistance::compute ( int32_t  idx_a,
int32_t  idx_b 
) [protected, virtual]

compute kernel function for features a and b idx_{a,b} denote the index of the feature vectors in the corresponding feature object

Implements CDistance.

Definition at line 56 of file EuclidianDistance.cpp.

virtual bool CEuclidianDistance::get_disable_sqrt (  )  [virtual]

disable application of sqrt on matrix computation the matrix can then also be named norm squared

Returns:
if application of sqrt is disabled

Definition at line 103 of file EuclidianDistance.h.

virtual EDistanceType CEuclidianDistance::get_distance_type (  )  [virtual]

get distance type we are

Returns:
distance type EUCLIDIAN

Implements CDistance.

Definition at line 84 of file EuclidianDistance.h.

virtual EFeatureType CEuclidianDistance::get_feature_type (  )  [virtual]

get feature type the distance can deal with

Returns:
feature type DREAL

Reimplemented from CRealDistance.

Definition at line 90 of file EuclidianDistance.h.

virtual const char* CEuclidianDistance::get_name (  )  const [virtual]

get name of the distance

Returns:
name Euclidian

Implements CSGObject.

Definition at line 96 of file EuclidianDistance.h.

bool CEuclidianDistance::init ( CFeatures l,
CFeatures r 
) [virtual]

init distance

Parameters:
l features of left-hand side
r features of right-hand side
Returns:
if init was successful

Reimplemented from CRealDistance.

Definition at line 35 of file EuclidianDistance.cpp.

bool CEuclidianDistance::load_init ( FILE *  src  )  [virtual]

load init data from file

Parameters:
src file to load from
Returns:
if loading was successful

Implements CDistance.

Definition at line 46 of file EuclidianDistance.cpp.

bool CEuclidianDistance::save_init ( FILE *  dest  )  [virtual]

save init data to file

Parameters:
dest file to save to
Returns:
if saving was successful

Implements CDistance.

Definition at line 51 of file EuclidianDistance.cpp.

virtual void CEuclidianDistance::set_disable_sqrt ( bool  state  )  [virtual]

disable application of sqrt on matrix computation the matrix can then also be named norm squared

Parameters:
state new disable_sqrt

Definition at line 110 of file EuclidianDistance.h.


Member Data Documentation

if application of sqrt on matrix computation is disabled

Definition at line 123 of file EuclidianDistance.h.

applied scaling factor

Definition at line 121 of file EuclidianDistance.h.


The documentation for this class was generated from the following files:

SHOGUN Machine Learning Toolbox - Documentation