09bb88d4d4d604033d6d140a64db8e9c3d50f320
BraggPrediction::Calc and BraggPredictionRot::Calc stopped filling at max_reflections (kPredictionCapacity = 20000), silently, inside the h/k/l walk - so a frame that predicted more kept whichever reflections the walk reached first, while the GPU predictors grow their buffer (GrowCapacity) and keep them all. A large cell therefore merged a different reflection set on a CPU-only build (the macOS/Windows viewer path, or CUDA_VISIBLE_DEVICES=) than on a GPU one. Both CPU predictors now double the buffer when the walk fills it, so they return the same set as the GPU; output_limit and TruncateToOutput are unchanged and remain the one cap on what leaves Calc, on both paths. Tests: BraggPrediction_GrowsPastStartingCapacity ([portable], CPU only) - a large cell predicting 28k (still) / 54k (rotation) reflections on one frame gives exactly what a buffer large enough from the outset gives, and an output_limit keeps the best-recorded half. BraggPrediction_CPU_GPU_ consistency_large_cell - the same frame on CPU and GPU: 28384/28384 and 53671/53671 matched by hkl, positions within 0.1 px. Both fail on the old code (count == 20000). Validation (CPU build): four in-house sets md5-identical to the base. A dense rotation set from the private arm predicted 72.0M (20000 x 3600 frames) before and 235.9M now, against the GPU's 235.9M; it ingests 218.65M partials, as the GPU does, and now reaches the GPU's cell, space group and merging statistics, where the capped CPU run settled on a different lattice. Cost on the CPU: 72.5 GB peak RSS (17.5 GB before), 44.5 min wall on a shared machine (7.2 min before). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D1G8gJVAy6gp1K5Dz3NE5C
Jungfraujoch
Application to receive data from the PSI JUNGFRAU and EIGER detectors.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
78.1%
HTML
6%
C
4.8%
TypeScript
3.5%
Cuda
2.7%
Other
4.8%