14 #include <Eigen/Dense>
16 using namespace shogun;
17 using namespace Eigen;
28 CRealDistance::init(l, r);
29 m_mahalanobis_matrix = m;
32 void CCustomMahalanobisDistance::register_params()
48 return "CustomMahalanobisDistance";
63 REQUIRE(avec.
vlen == bvec.
vlen,
"In CCustomMahalanobisDistance::compute the "
64 "feature vectors must have the same number of elements")
69 const VectorXd dvec = Map<const VectorXd>(avec, avec.
vlen) - Map<const VectorXd>(bvec, bvec.
vlen);
71 Map<const MatrixXd> M(m_mahalanobis_matrix.
matrix, m_mahalanobis_matrix.
num_rows,
74 return dvec.transpose()*M*dvec;
virtual float64_t compute(int32_t idx_a, int32_t idx_b)
virtual EDistanceType get_distance_type()
virtual ~CCustomMahalanobisDistance()
virtual const char * get_name() const
CFeatures * lhs
feature vectors to occur on the left hand side
The class Features is the base class of all feature objects.
CFeatures * rhs
feature vectors to occur on the right hand side
CCustomMahalanobisDistance()