diff --git a/image_analysis/scale_merge/SearchSpaceGroup.cpp b/image_analysis/scale_merge/SearchSpaceGroup.cpp index fd328b0d..19d7989c 100644 --- a/image_analysis/scale_merge/SearchSpaceGroup.cpp +++ b/image_analysis/scale_merge/SearchSpaceGroup.cpp @@ -289,6 +289,11 @@ SearchSpaceGroupResult SearchSpaceGroup( order.push_back(i); std::sort(order.begin(), order.end(), [&](size_t a, size_t b) { return merged[a].d > merged[b].d; }); // low res -> high res + // A hundred reflections a shell, at most twenty-five shells - and integer division, so + // below two hundred there is a single shell and E^2 is I over one global mean. That + // leaves the operator correlation exactly where it was, Pearson being invariant to a + // common scale, but not the E^2 overlap cap below: it then cuts on I against the whole + // merge instead of against each reflection's own shell. const int bins = std::clamp(static_cast(order.size() / 100), 1, 25); const size_t per = (order.size() + bins - 1) / std::max(1, bins); for (size_t b = 0; b * per < order.size(); ++b) {