9 #include "WeightedPoint.hpp"
10 #include "ProbabilisticPoint.hpp"
24 template<
typename ForwardIteratorCenter>
30 template<
typename ForwardIteratorPo
int,
typename ForwardIteratorCenter>
31 double weightedCost(ForwardIteratorPoint beginP, ForwardIteratorPoint endP, ForwardIteratorCenter beginC, ForwardIteratorCenter endC);
37 template<
typename ForwardIteratorCenter>
41 for (
auto itC = beginC; itC != endC; ++itC)
44 for (
auto it = pp.cbegin(); it != pp.cend(); ++it)
45 tmpCost += toPointer(*it)->getWeight() * dist->distance(toPointer(*it), toPointer(*itC));
46 tmpCost *= pp.getWeight();
47 if (tmpCost < minCost || itC == beginC)
53 template<
typename ForwardIteratorPo
int,
typename ForwardIteratorCenter>
54 double PKMedian::weightedCost(ForwardIteratorPoint beginP, ForwardIteratorPoint endP, ForwardIteratorCenter beginC, ForwardIteratorCenter endC)
57 for (
auto itP = beginP; itP != endP; ++itP)
60 for (
auto itC = beginC; itC != endC; ++itC)
63 for (
auto it = itP->cbegin(); it != itP->cend(); ++it)
64 tmpCost += toPointer(*it)->getWeight() * dist->distance(toPointer(*it), toPointer(*itC));
65 tmpCost *= toPointer(*itP)->getWeight();
66 if (tmpCost < minCost || itC == beginC)