Skip to content

Commit 46befdb

Browse files
Jammy2211claude
andcommitted
docs: correct route-gate crossover figures in docstrings (#628 review)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent ec06f69 commit 46befdb

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

‎autoarray/inversion/inversion/interferometer_numba/inversion_interferometer_numba_util.py‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ def direct_conv_work_from(nnz: int, extent_shape) -> float:
455455
# Aris 512, S = 2,577 106.2 1.29 1.57
456456
# Aris 512, S = 5,746 47.6 2.36 3.49
457457
#
458-
# The absolute residuals are larger (log-rms 0.55 FFT, 0.52 direct_conv): the two campaigns ran
458+
# The absolute residuals are larger (log-rms 0.56 FFT, 0.52 direct_conv): the two campaigns ran
459459
# on the same i9-10885H ~2.5x apart in clock state (the bake-off documents the drift), which
460460
# moves both routes together and cancels in the ratio. Implied crossovers in non-zeros per
461461
# source column: ~51 / 58 / 58 at the 70^2 / 140^2 / 280^2 bake-off extents (measured ~60 Delaunay,
@@ -487,11 +487,13 @@ def curvature_route_seconds_from(source_pixels: int, nnz: int, extent_shape):
487487
488488
The FFT route scales with the number of source *columns* and with the padded extent's
489489
transform cost, including its factorisation; `direct_conv` scales with the number of
490-
non-zeros times the extent area and is flat in `S` at fixed `nnz` (34-41 s from 2,577
491-
to 5,746 vertices on the Aris 512x512 mask). A fixed non-zeros-per-column gate is the
492-
special case of this model at one extent, which is why it could be right for the
493-
125x125 reference geometry (crossover ~60) and wrong for the 512x512 one (crossover
494-
~130-150).
490+
non-zeros times the extent area, so at a large extent it is ~flat in `S` at fixed
491+
`nnz` (34-41 s from 2,577 to 5,746 vertices on the Aris 512x512 mask). Both routes
492+
also pay `S`-dependent costs the model leaves out because they are common to both
493+
(the `S · nnz` gather, the dense solve). A fixed non-zeros-per-column gate is the
494+
special case of this model at one extent, which is why it could be right at the
495+
autolens_profiling#226 extents (70^2-280^2, crossover ~60) and wrong on the Aris
496+
512x512 mask (model crossover ~166, measured between 106 and 188).
495497
496498
Returns
497499
-------

‎autoarray/settings.py‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,9 @@ def interferometer_numba_nnz_per_source_max(self) -> Optional[float]:
403403
transform cost. At a fixed extent the two cross at a fixed mean non-zeros per
404404
source column, `mapper.pix_sizes_for_sub_slim_index.sum() / mapper.params` -- but
405405
that crossover moves with the extent: ~60 (Delaunay) / ~77 (rectangular) at the
406-
autolens_profiling#226 geometries, ~130-150 on the 512x512 Aris mask
407-
(PyAutoArray#628), so no single constant is right for both.
406+
autolens_profiling#226 geometries (extents 70^2-280^2), between 106 and 188 on
407+
the 512x512 Aris mask (extent 341^2, model crossover ~166; PyAutoArray#628), so
408+
no single constant is right for both.
408409
409410
- `None` -- the cost model
410411
(`inversion_interferometer_numba_util.curvature_route_seconds_from`, constants

0 commit comments

Comments
 (0)