9 #ifndef REDUKT_GROUNDDISTANCES
10 #define REDUKT_GROUNDDISTANCES
23 int d = std::min( f1.
dim(), f2.
dim() );
26 for(
int i=0; i < d; ++i )
27 dist += std::pow( fabs(f1[i]-f2[i]), P );
29 return std::pow( dist, 1.0/P );
37 int d = std::min( f1.
dim(), f2.
dim() );
40 for(
int i=0; i < d; ++i )
41 dist += std::fabs( f1[i] - f2[i] );
50 int d = std::min( f1.
dim(), f2.
dim() );
53 for(
int i=0; i < d; ++i )
54 dist += std::fabs( f1[i]*f1[i] - f2[i]*f2[i] );
56 return std::sqrt(dist);
59 #endif // REDUKT_GROUNDDISTANCES
L_p ground distance template between AbstractFeature types for use with EarthMoversDistance.
Definition: GroundDistances.h:19
float distance(const AbstractFeature &f1, const AbstractFeature &f2) const
Definition: GroundDistances.h:21
virtual int dim() const =0
Interface for distance functions to use with EarthMoversDistance.
Definition: EarthMoversDistance.h:14