Public Member Functions | |
CDistance () | |
CDistance (CFeatures *lhs, CFeatures *rhs) | |
virtual | ~CDistance () |
float64_t | distance (int32_t idx_a, int32_t idx_b) |
void | get_distance_matrix (float64_t **dst, int32_t *m, int32_t *n) |
virtual float64_t * | get_distance_matrix_real (int32_t &m, int32_t &n, float64_t *target) |
virtual float32_t * | get_distance_matrix_shortreal (int32_t &m, int32_t &n, float32_t *target) |
virtual bool | init (CFeatures *lhs, CFeatures *rhs) |
virtual void | cleanup ()=0 |
bool | load (char *fname) |
bool | save (char *fname) |
virtual bool | load_init (FILE *src)=0 |
virtual bool | save_init (FILE *dest)=0 |
CFeatures * | get_lhs () |
CFeatures * | get_rhs () |
virtual void | remove_lhs () |
takes all necessary steps if the lhs is removed from distance matrix | |
virtual void | remove_rhs () |
takes all necessary steps if the rhs is removed from distance matrix | |
virtual EDistanceType | get_distance_type ()=0 |
virtual EFeatureType | get_feature_type ()=0 |
virtual EFeatureClass | get_feature_class ()=0 |
virtual const char * | get_name ()=0 |
bool | get_precompute_matrix () |
virtual void | set_precompute_matrix (bool flag) |
Protected Member Functions | |
virtual float64_t | compute (int32_t x, int32_t y)=0 |
void | do_precompute_matrix () |
matrix precomputation | |
Protected Attributes | |
float32_t * | precomputed_matrix |
bool | precompute_matrix |
CFeatures * | lhs |
feature vectors to occur on left hand side | |
CFeatures * | rhs |
feature vectors to occur on right hand side |
Definition at line 45 of file Distance.h.
CDistance::CDistance | ( | ) |
default constructor
Definition at line 30 of file Distance.cpp.
init distance
lhs | features of left-hand side | |
rhs | features of right-hand side |
Definition at line 37 of file Distance.cpp.
CDistance::~CDistance | ( | ) | [virtual] |
Definition at line 44 of file Distance.cpp.
virtual void CDistance::cleanup | ( | ) | [pure virtual] |
cleanup distance
abstract base method
Implemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CSparseEuclidianDistance, and CTanimotoDistance.
virtual float64_t CDistance::compute | ( | int32_t | x, | |
int32_t | y | |||
) | [protected, pure virtual] |
compute distance function for features a and b idx_{a,b} denote the index of the feature vectors in the corresponding feature object
Implemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CSparseEuclidianDistance, and CTanimotoDistance.
float64_t CDistance::distance | ( | int32_t | idx_a, | |
int32_t | idx_b | |||
) |
get distance function for lhs feature vector a and rhs feature vector b
idx_a | feature vector a at idx_a | |
idx_b | feature vector b at idx_b |
Definition at line 67 of file Distance.h.
void CDistance::do_precompute_matrix | ( | ) | [protected] |
void CDistance::get_distance_matrix | ( | float64_t ** | dst, | |
int32_t * | m, | |||
int32_t * | n | |||
) |
get distance matrix
dst | distance matrix is stored in here | |
m | dimension m of matrix is stored in here | |
n | dimension n of matrix is stored in here |
Definition at line 143 of file Distance.cpp.
float64_t * CDistance::get_distance_matrix_real | ( | int32_t & | m, | |
int32_t & | n, | |||
float64_t * | target | |||
) | [virtual] |
get distance matrix real
m | dimension m | |
n | dimension n | |
target | target matrix |
Definition at line 279 of file Distance.cpp.
float32_t * CDistance::get_distance_matrix_shortreal | ( | int32_t & | m, | |
int32_t & | n, | |||
float32_t * | target | |||
) | [virtual] |
get distance matrix short real
m | dimension m | |
n | dimension n | |
target | target matrix |
Definition at line 210 of file Distance.cpp.
virtual EDistanceType CDistance::get_distance_type | ( | ) | [pure virtual] |
get distance type we are
abstrace base method
Implemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CSparseEuclidianDistance, and CTanimotoDistance.
virtual EFeatureClass CDistance::get_feature_class | ( | ) | [pure virtual] |
get feature class the distance can deal with
abstract base method
Implemented in CSimpleDistance< ST >, CSparseDistance< ST >, CStringDistance< ST >, CSimpleDistance< float64_t >, CSparseDistance< float64_t >, and CStringDistance< uint16_t >.
virtual EFeatureType CDistance::get_feature_type | ( | ) | [pure virtual] |
get feature type the distance can deal with
abstrace base method
Implemented in CEuclidianDistance, CRealDistance, CSimpleDistance< ST >, CSparseDistance< ST >, CSparseEuclidianDistance, CStringDistance< ST >, CSimpleDistance< float64_t >, CSparseDistance< float64_t >, CStringDistance< uint16_t >, CSimpleDistance< ST >, CSimpleDistance< ST >, CSimpleDistance< ST >, CSimpleDistance< ST >, CSimpleDistance< ST >, CSimpleDistance< ST >, CSparseDistance< ST >, CSparseDistance< ST >, CSparseDistance< ST >, CSparseDistance< ST >, CSparseDistance< ST >, CSparseDistance< ST >, CStringDistance< ST >, CStringDistance< ST >, CStringDistance< ST >, CStringDistance< ST >, CStringDistance< ST >, and CStringDistance< ST >.
CFeatures* CDistance::get_lhs | ( | ) |
get left-hand side features used in distance matrix
Definition at line 181 of file Distance.h.
virtual const char* CDistance::get_name | ( | ) | [pure virtual] |
get name of the distance
abstrace base method
Implemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CSparseEuclidianDistance, and CTanimotoDistance.
bool CDistance::get_precompute_matrix | ( | ) |
FIXME: precompute matrix should be dropped, handling should be via customdistance
Definition at line 233 of file Distance.h.
CFeatures* CDistance::get_rhs | ( | ) |
get right-hand side features used in distance matrix
Definition at line 187 of file Distance.h.
init distance
make sure to check that your distance can deal with the supplied features (!)
lhs | features of left-hand side | |
rhs | features of right-hand side |
Reimplemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CRealDistance, CSimpleDistance< ST >, CSparseDistance< ST >, CSparseEuclidianDistance, CStringDistance< ST >, CTanimotoDistance, CSimpleDistance< float64_t >, CSparseDistance< float64_t >, and CStringDistance< uint16_t >.
Definition at line 50 of file Distance.cpp.
bool CDistance::load | ( | char * | fname | ) |
load distance matrix from file
fname | filename to load from |
Definition at line 69 of file Distance.cpp.
virtual bool CDistance::load_init | ( | FILE * | src | ) | [pure virtual] |
load init data from file
abstract base method
src | file to load from |
Implemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CSparseEuclidianDistance, and CTanimotoDistance.
void CDistance::remove_lhs | ( | ) | [virtual] |
takes all necessary steps if the lhs is removed from distance matrix
Definition at line 105 of file Distance.cpp.
void CDistance::remove_rhs | ( | ) | [virtual] |
takes all necessary steps if the rhs is removed from distance matrix
takes all necessary steps if the rhs is removed from kernel
Definition at line 112 of file Distance.cpp.
bool CDistance::save | ( | char * | fname | ) |
save distance matrix to file
fname | filename to save to |
Definition at line 74 of file Distance.cpp.
virtual bool CDistance::save_init | ( | FILE * | dest | ) | [pure virtual] |
save init data to file
abstrace base method
dest | file to save to |
Implemented in CBrayCurtisDistance, CCanberraMetric, CCanberraWordDistance, CChebyshewMetric, CChiSquareDistance, CCosineDistance, CEuclidianDistance, CGeodesicMetric, CHammingWordDistance, CJensenMetric, CManhattanMetric, CManhattanWordDistance, CMinkowskiMetric, CSparseEuclidianDistance, and CTanimotoDistance.
virtual void CDistance::set_precompute_matrix | ( | bool | flag | ) | [virtual] |
FIXME: precompute matrix should be dropped, handling should be via customdistance
flag | if precompute_matrix |
Definition at line 240 of file Distance.h.
CFeatures* CDistance::lhs [protected] |
bool CDistance::precompute_matrix [protected] |
FIXME: precompute matrix should be dropped, handling should be via customdistance
Definition at line 269 of file Distance.h.
float32_t* CDistance::precomputed_matrix [protected] |
FIXME: precompute matrix should be dropped, handling should be via customdistance
Definition at line 264 of file Distance.h.
CFeatures* CDistance::rhs [protected] |