The staged record of an atom is now its isotropic Gaussians, occupancy and radius (an anisotropic atom's
matrices are read from global memory on that rarer path) and its box as bit masks over the brick's eight
points along each axis, with the base and wrap that turn a point into gemmi's unwrapped box index. The
inner loop tests a point with three shifts instead of three box offsets and six shared reads, and the shared
record is a quarter of its size, so a fourth block fits on a multiprocessor. The density arithmetic, the order
over the atoms and the summation are unchanged, so the grid is bit for bit the CPU walk's as before.
Outputs are byte-identical; refinement and molecular replacement each gain a few percent on the demo-sized sets.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu