1 #ifndef theplu_yat_statistics_euclidean_distance_h
2 #define theplu_yat_statistics_euclidean_distance_h
26 #include "AveragerPair.h"
27 #include "AveragerPairWeighted.h"
28 #include "yat/utility/iterator_traits.h"
34 namespace statistics {
63 template <
typename ForwardIterator1,
typename ForwardIterator2>
64 double operator()(ForwardIterator1 beg1, ForwardIterator1 end1,
65 ForwardIterator2 beg2)
const
68 typename weighted_if_any2<ForwardIterator1,ForwardIterator2>::type tag;
69 return this->distance(beg1, end1, beg2, tag);
73 template <
typename Iter1,
typename Iter2>
74 double distance (Iter1 beg1,Iter1 end1, Iter2 beg2,
78 add(ap,beg1,end1,beg2);
82 template <
typename Iter1,
typename Iter2>
83 double distance (Iter1 beg1,Iter1 end1, Iter2 beg2,
86 AveragerPairWeighted ap;
87 add(ap,beg1,end1,beg2);
88 return sqrt(std::distance(beg1,end1)*ap.msd());