Docs: results report - rejection counters, every CENTRE_STATISTICS key, build flags

- OBSERVATIONS_REJECTED / _WILSON / _OVERLOAD: what each counts and how
  they relate (the overload count is not part of OBSERVATIONS_REJECTED).
- CENTRE_STATISTICS_REFLECTIONS and the three per-statistic _F keys are
  named; NOT_APPLICABLE is stated as the code decides it (any of the three
  outside -0.3..1.3, or the control below 0.5).
- BUILD_CXX_FLAGS no longer says that -march moves the results: the build
  turns floating-point contraction off and the indexer's reductions no
  longer depend on SIMD width, so CPU levels agree. The RUGNUX_GIT and
  BUILD_CXX_FLAGS keys were also listed twice in the header paragraph.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB
This commit is contained in:
2026-10-05 16:32:36 +02:00
co-authored by Claude Opus 5.5
parent 39abdb9f58
commit e7c4cb128c
+24 -15
View File
@@ -60,6 +60,13 @@ scaled-up counting error gives it, and is in `R_MEAS_WEIGHTED=` at that weight t
the number with its noise; a large gap between the two says weak frames are kept at low weight.
`MULTIPLICITY=` stays a count of observations.
**`OBSERVATIONS_REJECTED=`** counts the observations the merge's outlier tests removed, and
**`OBSERVATIONS_REJECTED_WILSON=`** the part of them the Wilson test took (each listed in the developer
report). **`OBSERVATIONS_REJECTED_OVERLOAD=`** is separate from both: the rotation measurements left
out because a pixel of the spot was overloaded on one of its frames, as XDS leaves out an overloaded
reflection. Outlier rejection takes observations out of `R_MEAS=` and `CC_HALF=` too, so a run that
rejects much scores better on both; read the counts beside them.
The last blocks before `END OF REPORT` are the authorship and the acknowledgement: who wrote
rugnux, its licence (GPLv3 — free to use for academic institutions and commercial companies alike)
and where releases are published, then the credit to the X-ray research community whose methods
@@ -74,15 +81,14 @@ line. It counts releases, not changes: it moves at most once per release, howeve
changes that release carries, because a reader only ever meets the format that was released.
The header block above section 1 records **how the result was produced**: `RUGNUX_VERSION=` and
`RUGNUX_DOWNLOAD=` (the release page of exactly that version), `RUGNUX_GIT=`, `BUILD_CXX_FLAGS=`,
`DATE=`, `INPUT_FILE=` and `OUTPUT_PREFIX=`, plus
`RUGNUX_DOWNLOAD=` (the release page of exactly that version), `DATE=`, `INPUT_FILE=` and
`OUTPUT_PREFIX=`, plus
- **`RUGNUX_GIT=`** — the commit the binary was built from, stamped at build time so it cannot go
stale in a reconfigured tree; a `-dirty` suffix marks a build from uncommitted changes.
- **`BUILD_CXX_FLAGS=`** — the compiler flags of the build (`NONE` for a plain configure). Two
builds of one commit can differ by flags alone, and `-march` moves the CPU-bound results, so a
comparison of two reports starts here.
- **`BUILD_CXX_FLAGS=`** — the compiler flags of the build (`NONE` for a plain configure). The build
is set up so that the CPU level it targets (`-march`) does not change the results, only the speed;
where two reports of one commit still disagree, this is the first line to compare.
- **`COMMAND_LINE=`** — the invocation as one shell-ready line, arguments containing spaces quoted.
- **`WALL_TIME=`** — the whole invocation in seconds. It covers everything the process did, opening
the file and setting up included, so it is a little larger than the `Processing time` printed on
@@ -265,15 +271,18 @@ I4_1md); the lowest-numbered is written and the other listed as the alternative.
`CENTRE_STATISTICS_*` are the intensity statistics behind that, read on every searched run on the
general reflections - those no operator of the Laue class but the identity maps to themselves, which
are centric exactly when the crystal is centrosymmetric. `CENTRE_STATISTICS_L=` is <|L|> (Padilla &
Yeates; 0.5 acentric, 2/pi centric), `CENTRE_STATISTICS_E2_MINUS_1=` <|E^2-1|> (0.736 / 0.968) and
`CENTRE_STATISTICS_NZ01=` N(0.1), the fraction with E^2 < 0.1 (0.095 / 0.248). Each `_F` places its
statistic between the values the same reflections read when simulated acentric (0) and centric (1)
with their own shell means and sigmas; `CENTRE_STATISTICS_CONTROL_F=` does the same for the
reflections centric in every candidate, which must read centric. `CENTRE_STATISTICS_VERDICT=` is
`ACENTRIC` when <|L|> reads `_F` <= 0.3 and the other two <= 0.5, `NOT_APPLICABLE` when any reading
falls outside -0.3..1.3 (a structure with a few heavy atoms on special positions reads beyond centric)
or the control is not centric, and `INCONCLUSIVE` otherwise. A twinned crystal reads acentric whether
are centric exactly when the crystal is centrosymmetric; `CENTRE_STATISTICS_REFLECTIONS=` is how many
there were. `CENTRE_STATISTICS_L=` is <|L|> (Padilla & Yeates; 0.5 acentric, 2/pi centric),
`CENTRE_STATISTICS_E2_MINUS_1=` <|E^2-1|> (0.736 / 0.968) and `CENTRE_STATISTICS_NZ01=` N(0.1), the
fraction with E^2 < 0.1 (0.095 / 0.248). Each has an `_F` beside it (`CENTRE_STATISTICS_L_F=`,
`_E2_MINUS_1_F=`, `_NZ01_F=`) that places the statistic between the values the same reflections read
when simulated acentric (0) and centric (1) with their own shell means and sigmas;
`CENTRE_STATISTICS_CONTROL_F=` does the same for the reflections centric in every candidate, which
must read centric. The statistics are written only where L-test pairs and control reflections were
found. `CENTRE_STATISTICS_VERDICT=` is `ACENTRIC` when <|L|> reads `_F` <= 0.3 and the other two
<= 0.5, `NOT_APPLICABLE` when any of the three falls outside -0.3..1.3 (a structure with a few heavy
atoms on special positions reads beyond centric) or the control reads below 0.5, and `INCONCLUSIVE`
otherwise. A twinned crystal reads acentric whether
or not it has a centre, which is why the verdict decides only with twinning excluded by the lattice.
`SPACE_GROUP_ENANTIOMORPH=` in section 2 reads **`ASSUMED_FROM_MODEL`** when the hand written in the