Index: trunk/yat/statistics/EuclideanDistance.h
===================================================================
--- trunk/yat/statistics/EuclideanDistance.h (revision 1093)
+++ trunk/yat/statistics/EuclideanDistance.h (revision 1115)
@@ -38,6 +38,7 @@
///
/// @brief Calculates the Euclidean distance between two points
- /// stored in 1-dimensional containers. Implements the concept \ref
- /// concept_distance.
+ /// given by elements of ranges.
+ ///
+ /// This class is modelling the concept \ref concept_distance.
///
///
@@ -45,11 +46,20 @@
{
/**
- \brief Calculates the Euclidean distance between two ranges.
+ \brief Calculates the Euclidean distance between elements of
+ two ranges.
- If both ranges are unweighted the distance is calculated as \f$
- \sqrt{\sum (x_i-y_i)^2 } \f$
+ If elements of both ranges are unweighted the distance is
+ calculated as \f$ \sqrt{\sum (x_i-y_i)^2 } \f$, where \f$ x_i
+ \f$ and \f$ y_i \f$ are elements of the first and second range,
+ respectively.
- Else distance is calculated as \f$ N \frac{\sum
- w_xw_y(x-y)^2}{\sum w_xw_y} \f$
+ If elements of one or both of ranges have weights the distance
+ is calculated as \f$ \sqrt{N \sum
+ w_{x,i}w_{y,i}(x_i-y_i)^2/\sum w_{x,i}w_{y,i}} \f$, where \f$ N
+ \f$ is the number of elements in the two ranges and \f$ w_x \f$
+ and \f$ w_y \f$ are weights for the elements of the first and
+ the second range, respectively. If the elements of one of the
+ two ranges are unweighted, the weights for these elements are
+ set to unity.
*/
template
Index: trunk/yat/statistics/PearsonDistance.h
===================================================================
--- trunk/yat/statistics/PearsonDistance.h (revision 1093)
+++ trunk/yat/statistics/PearsonDistance.h (revision 1115)
@@ -35,12 +35,28 @@
///
- /// @brief Calculates the %Pearson correlation distance between two points stored in 1-dimensional containers. Implements the concept \ref concept_distance.
+ /// @brief Calculates the %Pearson correlation distance between two points given by elements of ranges.
///
+ /// This class is modelling the concept \ref concept_distance.
///
struct PearsonDistance
{
- ///
- /// @brief Calculates the %Pearson correlation distance between two ranges.
- ///
+ /**
+ \brief Calculates the %Pearson correlation distance between
+ elements of two ranges.
+
+ If elements of both ranges are unweighted the distance is
+ calculated as \f$ 1-\mbox{C}(x,y) \f$, where \f$ x \f$ and \f$
+ y \f$ are the two points and C is the %Pearson correlation.
+
+ If elements of one or both of ranges have weights the distance
+ is calculated as \f$ 1-[\sum w_{x,i}w_{y,i}(x_i-y_i)^2/(\sum
+ w_{x,i}w_{y,i}(x_i-m_x)^2\sum w_{x,i}w_{y,i}(y_i-m_y)^2)] \f$,
+ where and \f$ w_x \f$ and \f$ w_y \f$ are weights for the
+ elements of the first and the second range, respectively, and
+ \f$ m_x=\sum w_{x,i}w_{y,i}x_i/\sum w_{x,i}w_{y,i} \f$ and
+ correspondingly for \f$ m_y \f$. If the elements of one of the
+ two ranges are unweighted, the weights for these elements are
+ set to unity.
+ */
template
double operator()