6 using namespace utl::Accumulator;
16 return (TRandom3*)(gRandom);
52 for (
const auto& xw : wcdf)
60 for (
const auto& xw : wcdf) {
61 maxm(xw.first - wsum/wtot);
63 maxp(wsum/wtot - xw.first);
78 for (
const auto& xw : wcdf)
84 double a = wcdf.front().first;
86 double anderson = -log(a1);
87 for (
unsigned int i = 0, n = wcdf.size() - 1; i < n; ++i) {
88 const double b = wcdf[i+1].first;
89 const double b1 = 1 -
b;
90 wsum += wcdf[i].second;
91 const double d = wsum/wtot;
92 anderson +=
Sqr(1 - d)*log(a1/b1) +
Sqr(d)*log(b/a);
96 anderson -= log(a) + 1;
97 return wtot * anderson;
constexpr T Sqr(const T &x)
double UniformKolmogorovSmirnov(const vector< pair< double, double >> &wcdf, double wtot)
double UniformAndersonDarling(const vector< pair< double, double >> &wcdf, double wtot)