1#ifndef GfxTL__L1NORM_HEADER__
2#define GfxTL__L1NORM_HEADER__
9 template <
class VectorKernelT>
12 template <
class ScalarAT,
class ScalarBT>
18 template <
class Po
intAT,
class Po
intBT>
21 Distance(
const PointAT& p,
const PointBT& v)
const
26 DistType d = p[0] - v[0], di;
28 for (
unsigned int i = 1; i < m_dim; ++i)
36 template <
class Po
intAT,
class Po
intBT>
37 typename DistanceType<typename ScalarTypeDeferer<PointAT>::ScalarType,
44 template <
class ScalarT>
51 template <
class DistScalarT,
class DiffScalarT>
55 DiffScalarT cutDiff)
const
57 return boxSqrDist + (DistScalarT)cutDiff - (DistScalarT)boxDiff;
60 template <
class Po
intAT,
class Po
intBT>
61 typename DistanceType<typename ScalarTypeDeferer<PointAT>::ScalarType,
69 for (
unsigned int i = 0; i < m_dim; ++i)
76 else if (a[i] >
max[i])
static ScalarT Abs(ScalarT s)
MatrixXX< C, R, T > min(const MatrixXX< C, R, T > &a, const MatrixXX< C, R, T > &b)
MatrixXX< C, R, T > max(const MatrixXX< C, R, T > &a, const MatrixXX< C, R, T > &b)
ScalarTypeConversion< ScalarAT, ScalarBT >::DifferenceType Type
DistScalarT IncrementalBoxSqrDistance(DistScalarT boxSqrDist, DiffScalarT boxDiff, DiffScalarT cutDiff) const
DistanceType< typenameScalarTypeDeferer< PointAT >::ScalarType, typenameScalarTypeDeferer< PointBT >::ScalarType >::Type Distance(const PointAT &p, const PointBT &v) const
ScalarT RootOfDistance(ScalarT sqrDistance) const
DistanceType< typenameScalarTypeDeferer< PointAT >::ScalarType, typenameScalarTypeDeferer< PointBT >::ScalarType >::Type SqrDistance(const PointAT &p, const PointBT &v) const
DistanceType< typenameScalarTypeDeferer< PointAT >::ScalarType, typenameScalarTypeDeferer< PointBT >::ScalarType >::Type BoxSqrDistance(const PointAT &a, const PointBT &min, const PointBT &max) const
PointT::value_type ScalarType