aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/histogram/adaptive/common.cpp
blob: 4d90ff15491f6ce143699fe05f78928a62d35a8f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "common.h" 
 
namespace NKiwiAggr { 
    TWeightedValue CalcDistanceQuality(const TWeightedValue& left, const TWeightedValue& right) { 
        return TWeightedValue(right.first - left.first, left.first); 
    } 
 
    TWeightedValue CalcWeightQuality(const TWeightedValue& left, const TWeightedValue& right) { 
        return TWeightedValue(right.second + left.second, left.first); 
    } 
 
    TWeightedValue CalcWardQuality(const TWeightedValue& left, const TWeightedValue& right) { 
        const double N1 = left.second;
        const double N2 = right.second;
        const double mu1 = left.first; 
        const double mu2 = right.first; 
        return TWeightedValue(N1 * N2 / (N1 + N2) * (mu1 - mu2) * (mu1 - mu2), left.first); 
    } 
}