Skip to content

Warm-start the imaging potential-correction iterative test#181

Merged
Jammy2211 merged 1 commit into
mainfrom
fix/potential-correction-warm-start-imaging
Jul 17, 2026
Merged

Warm-start the imaging potential-correction iterative test#181
Jammy2211 merged 1 commit into
mainfrom
fix/potential-correction-warm-start-imaging

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Why

potential_correction/subhalo_recovery.py cold-started the iterative LM engine (x0=zeros), which recovered the subhalo (corr 0.78) until PyAutoLens ad97e5fd5 switched LM damping to mu*diag(H) (for the interferometer). Under scale-invariant damping, cold-start from zeros no longer lands in the subhalo basin and the iterative dkappa correlation collapsed to a deterministic 0.032 — failing CI on main (3.12 & 3.13), env-independent (reproduced with the full smoke env and bare). The one-shot inversion was unaffected (0.78). Bisected to ad97e5fd5: the port test was green until the next iterative.py change landed.

What

Switch to the certified warm-start recipe (PyAutoLens#630): x0 = the one-shot joint solution [s | dpsi], with gauge_project_x0=True so the engine projects the un-gauged one-shot dpsi onto the gauge surface before iterating. The LM now refines inside the one-shot basin — corr 0.7822, evidence 9.07e3 (up from cold's 4.21e3) — and the gauge constraints hold. This is the first test to exercise the x0 warm-start feature.

Verified end-to-end under the smoke env (TEST_MODE=2, DISABLE_JAX=1): all assertions pass.

Dependency

Requires the matching-name PyAutoLens#632 (adds gauge_project_x0); the smoke CI clones that branch automatically. Merge the library PR first.

🤖 Generated with Claude Code

https://claude.ai/code/session_01V3MxfFWYP7cBPyLGE8MWAV

subhalo_recovery.py cold-started the iterative LM engine (x0=zeros), which
recovered the subhalo (corr 0.78) until PyAutoLens ad97e5fd5 switched LM
damping to mu*diag(H) (for the interferometer). Under scale-invariant
damping, cold-start from zeros no longer lands in the subhalo basin and the
iterative dkappa correlation collapsed to 0.032 (deterministic; failed on
main 3.12/3.13, env-independent).

Switch to the certified warm-start recipe (PyAutoLens#630): x0 = the one-shot
joint solution [s | dpsi], with gauge_project_x0=True so the engine projects
the un-gauged one-shot dpsi onto the gauge surface before iterating. The LM
now refines inside the one-shot basin (corr 0.7822, evidence 9.07e3, up from
cold's 4.21e3) and the gauge constraints hold.

Depends on the matching-name PyAutoLens branch (adds gauge_project_x0);
library merges first. Verified end-to-end under the smoke env (TEST_MODE=2,
DISABLE_JAX=1): all assertions pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3MxfFWYP7cBPyLGE8MWAV
@Jammy2211
Jammy2211 merged commit 20ee981 into main Jul 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant