Files
Jungfraujoch/image_analysis/structure_refinement
leonarski_fandClaude Fable 5.1 128e3bb9ae RefinementGPU: the symmetry phases from a table instead of sincospi in the compose and scatter kernels
exp(2 pi i h.t) depends only on the integer h.t (in units of 1/den), so the engine tabulates it once over the
range the rows and operators make, with the same op_phase() at the same double argument - the same bits. The
compose kernel reads the table at h.t; the scatter terms carry their table entry, and their row directly, so
neither hot kernel divides: the rotations go to the device in whole units (gemmi's are den times an integer
matrix), the term's row no longer has to be split from its operator. The table is a few thousand entries, the
scatter terms one int wider.

Outputs are byte-identical; the X-ray evaluation counter drops 7-10% on the demo-sized sets.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu
2026-10-26 20:58:10 +01:00
..
2026-10-19 07:03:28 +02:00
2026-10-19 07:03:28 +02:00
2026-10-19 07:03:28 +02:00
2026-10-19 07:03:28 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2026-10-19 07:03:28 +02:00
2026-10-19 07:03:28 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2026-10-24 14:52:29 +02:00
2026-10-21 11:20:01 +02:00
2026-10-21 11:20:01 +02:00
2026-10-21 11:20:01 +02:00
2026-10-21 11:20:01 +02:00
2026-10-19 07:03:28 +02:00
2026-10-19 07:03:28 +02:00
2026-10-21 11:20:01 +02:00
2026-10-19 07:03:28 +02:00
2026-10-21 11:20:01 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2026-10-19 07:03:28 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00