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.
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:
Definition at line 41 of file EuclidianDistance.h.
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 |
CEuclidianDistance::CEuclidianDistance | ( | ) |
default constructor
Definition at line 17 of file EuclidianDistance.cpp.
CEuclidianDistance::CEuclidianDistance | ( | CSimpleFeatures< float64_t > * | l, | |
CSimpleFeatures< float64_t > * | r | |||
) |
constructor
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.
void CEuclidianDistance::cleanup | ( | ) | [virtual] |
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
Definition at line 103 of file EuclidianDistance.h.
virtual EDistanceType CEuclidianDistance::get_distance_type | ( | ) | [virtual] |
get distance type we are
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
Reimplemented from CRealDistance.
Definition at line 90 of file EuclidianDistance.h.
virtual const char* CEuclidianDistance::get_name | ( | ) | const [virtual] |
get name of the distance
Implements CSGObject.
Definition at line 96 of file EuclidianDistance.h.
init distance
l | features of left-hand side | |
r | features of right-hand side |
Reimplemented from CRealDistance.
Definition at line 35 of file EuclidianDistance.cpp.
bool CEuclidianDistance::load_init | ( | FILE * | src | ) | [virtual] |
load init data from file
src | file to load from |
Implements CDistance.
Definition at line 46 of file EuclidianDistance.cpp.
bool CEuclidianDistance::save_init | ( | FILE * | dest | ) | [virtual] |
save init data to file
dest | file to save to |
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
state | new disable_sqrt |
Definition at line 110 of file EuclidianDistance.h.
bool CEuclidianDistance::disable_sqrt [protected] |
if application of sqrt on matrix computation is disabled
Definition at line 123 of file EuclidianDistance.h.
float64_t CEuclidianDistance::scale [protected] |
applied scaling factor
Definition at line 121 of file EuclidianDistance.h.