MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / outlier_variance

Function outlier_variance

extlibs/catch/include/catch/catch.hpp:7469–7493  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7467 }
7468
7469 double outlier_variance(Estimate<double> mean, Estimate<double> stddev, int n) {
7470 double sb = stddev.point;
7471 double mn = mean.point / n;
7472 double mg_min = mn / 2.;
7473 double sg = std::min(mg_min / 4., sb / std::sqrt(n));
7474 double sg2 = sg * sg;
7475 double sb2 = sb * sb;
7476
7477 auto c_max = [n, mn, sb2, sg2](double x) -> double {
7478 double k = mn - x;
7479 double d = k * k;
7480 double nd = n * d;
7481 double k0 = -n * nd;
7482 double k1 = sb2 - n * sg2 + nd;
7483 double det = k1 * k1 - 4 * sg2 * k0;
7484 return (int)(-2. * k0 / (k1 + std::sqrt(det)));
7485 };
7486
7487 auto var_out = [n, sb2, sg2](double c) {
7488 double nc = n - c;
7489 return (nc / n) * (sb2 - nc * sg2);
7490 };
7491
7492 return std::min(var_out(1), var_out(std::min(c_max(0.), c_max(mg_min)))) / sb2;
7493 }
7494
7495 bootstrap_analysis analyse_samples(double confidence_level, int n_resamples, std::vector<double>::iterator first, std::vector<double>::iterator last) {
7496 CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS

Callers 1

analyse_samplesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected