-
Andrey Filippov authored
Root cause of the CORR2D-all-NaN / 0-targets: the inter-correlation actually works (probe showed num_corr_tiles=8850 = 4425 tiles x (1 sensor + 1 sum)), but the TD readback dropped it. Base GpuQuad.getCorrIndices() sets the num_corr_tiles field ("also sets num_corr_tiles"); GpuQuadJna.getCorrIndices() read the native count locally and returned the array WITHOUT setting the field. So TDCorrTile.getFromGpu (num_tiles = getNumCorrTiles()/num_pairs) and base getCorrTilesTd (uses the field directly) saw a stale 0 -> built 0 tiles -> empty target sequence -> null ROUND_ONE image -> saveImagePlusInModelDirectory NPE (the misplaced-null-guard latent bug is just the messenger). Fix: GpuQuadJna.getCorrIndices() sets num_corr_tiles = n (native count); field made protected so the subclass can. Java-only. Co-Authored-By:Claude Opus 4.8 (1M context) <noreply@anthropic.com>
f6dcc90f