Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions skills/ag_build_interferometer_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -275,10 +275,6 @@ not cosmetic.
10⁹, so a disagreement bigger than that means something about the NUFFT setup is wrong rather
than the transform being approximate. It is also what the pixelised reconstruction's
sparse-operator path uses.
- **`ag.TransformerNUFFTPyNUFFT`** — a legacy `pynufft`-backed transformer, kept as a non-JAX
fallback. It is not JAX-traceable, so it forfeits GPU acceleration *and* the gradient-based
searches, which need the likelihood's derivatives.

**There is a guard, and it is there for a reason.** `ag.Interferometer` (and `from_fits`) raises
`raise_error_dft_visibilities_limit=True` by default, and it will refuse to build a dataset with
more than **10,000 visibilities** while `transformer_class=ag.TransformerDFT`. The DFT at that
Expand Down
2 changes: 1 addition & 1 deletion skills/ag_setup_environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ question in disguise:
command names it explicitly. It accelerates the compiled geometry kernels in
PyAutoArray; if it will not build on your platform, the stack runs without it.

`pynufft` only matters if you fit visibilities — skip it otherwise; the library prints
`nufftax` only matters if you fit visibilities — skip it otherwise; the library prints
exactly what to install if you reach interferometer code without it. The full extras
table, the conda route and the editable-clone route (for reading or modifying library
source) are in
Expand Down
6 changes: 3 additions & 3 deletions wiki/core/api/datasets.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ sources:
- scripts/interferometer/start_here.py
pinned_commit: d6db2643b9f2cd418efc9473f560dc2a2d459c73
last_updated: 2026-08-01
content_sha256: 588526e9facb90fe46fc488fbece00c62fc2a5640fa9cf01ff0ebf92243fafd8
content_sha256: 9af41974373a9870baadb95596c1a6ebba5daf770c26c16f7293459a9afd91cb
---

# Datasets
Expand Down Expand Up @@ -181,8 +181,8 @@ Adapted from `autogalaxy_workspace:scripts/interferometer/start_here.py`. Source

**Transformers.** `ag.TransformerNUFFT` is the JAX-native non-uniform FFT and the recommended
default at any visibility count. `ag.TransformerDFT` is an exact discrete transform — slower
for large `n_vis`, but useful as a verification reference. `ag.TransformerNUFFTPyNUFFT` is the
legacy backend, available when explicitly requested.
for large `n_vis`, but useful as a verification reference, and the transformer to use where
JAX is unavailable (notably Intel macOS, for which JAX ships no wheels).

Attributes:

Expand Down
6 changes: 1 addition & 5 deletions wiki/core/concepts/interferometer_theory.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ sources:
- scripts/interferometer/features/linear_light_profiles/modeling.py
pinned_commit: d6db2643b9f2cd418efc9473f560dc2a2d459c73
last_updated: 2026-08-01
content_sha256: 8b874623d54019876858f6ca351df0359ae461d3fc6f43d3b132fd2e2284825c
content_sha256: 1fa1de69f41b378b2a1a99b1d0d77bc0f935e30f0ecf19b67a5bcfa437759593
---

# Interferometer fitting — visibilities, the uv-plane and dirty images
Expand Down Expand Up @@ -120,10 +120,6 @@ Three transformers are available (`PyAutoArray:autoarray/operators/transformer.p
- **`ag.TransformerDFT`** — the exact discrete Fourier transform. Slower than the NUFFT once
`n_vis` is large, but valuable as a reference for verifying a NUFFT result, and used by the
pixelised reconstruction's sparse-operator path.
- **`ag.TransformerNUFFTPyNUFFT`** — a legacy `pynufft`-backed transformer, kept as a
non-JAX fallback. It is not JAX-traceable, so it forfeits GPU acceleration and the
gradient-based searches.

Because `nufftax` is JAX-native, light-profile interferometer fitting now runs at full GPU
speed for datasets with **arbitrarily many visibilities** — up to the tens or hundreds of
millions typical of high-resolution ALMA observations.
Expand Down
11 changes: 6 additions & 5 deletions wiki/core/operations/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ sources:
- autoassistant/audit_skill_apis.py
pinned_commit: ed72fabb33e14a9a701a4d280e8775dd3a20e98c
last_updated: 2026-08-01
content_sha256: a758c9de0a2e8e2a9e880fed2f3562a8918feec447616c6eb2c94c667a6c81ae
content_sha256: 8999fa2a4700ae1fe2db2782fe66bdb222eadf78d35db474b6043da47155167c
---

# Installation
Expand Down Expand Up @@ -100,7 +100,7 @@ below need a modern resolver.
| Extra | Pulls in | Install it when |
|---|---|---|
| `jax` | `autofit[jax]` (→ `autonerves[jax]`: `jax`/`jaxlib` `>=0.7.0,<0.11.0`, `jaxnnls`; plus `optax`) and `jax_zero_contour` | Almost always — JAX is the accelerated evaluation path, on CPU and GPU |
| `optional` | `autogalaxy[jax]`, `numba`, `pynufft`, `zeus-mcmc`, `getdist` | You want the full set in one command |
| `optional` | `autogalaxy[jax]`, `numba`, `zeus-mcmc`, `getdist` | You want the full set in one command |
| `test` | `pytest`, `colossus` | You are running PyAutoGalaxy's own test suite |
| `docs` | Sphinx + theme packages | You are building the RTD site |

Expand All @@ -115,9 +115,10 @@ the CPU wheel over it.
JIT-compiled geometry kernels in PyAutoArray. If it will not build on your platform,
PyAutoGalaxy runs without it — see `PyAutoGalaxy:docs/installation/numba.md`.

**`pynufft` is only for interferometer work.** Skip it unless you fit visibilities; if
you do run interferometer code without it, the library prints a message telling you
exactly what to install.
**`nufftax` is only for interferometer work.** It is not in PyAutoGalaxy's `optional`
extra — install it explicitly with `pip install nufftax`. Skip it unless you fit
visibilities; if you do run interferometer code without it, the library prints a message
telling you exactly what to install.

### Conda

Expand Down
4 changes: 2 additions & 2 deletions wiki/core/stack/autoarray.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ sources:
- README.md
pinned_commit: 59b0f198fc7bdf9c91e5a8f734dad796fcc55656
last_updated: 2026-08-01
content_sha256: 8f4425d067e527e01d00fa5a512a91dcf96de18071acb8cb5adfe1b43fe4e9a0
content_sha256: f4a8f8720dde3b84912f3220ae2deeeeeb2cb5c912d5cc5177e88f9663244793
---

# PyAutoArray — arrays, grids, masks, datasets
Expand Down Expand Up @@ -90,7 +90,7 @@ The plot-label notation and output settings a user is more likely to edit live i

`autonerves`, `astropy`, `decorator`, `dill`, `matplotlib`, `scipy`, `scikit-image`,
`scikit-learn`, `tqdm`. Optional extras add `numba` for JIT-acceleration of geometry
kernels, and `nufftax` / `pynufft` for visibility transforms.
kernels, and `nufftax` for visibility transforms.

## See also

Expand Down
4 changes: 2 additions & 2 deletions wiki/core/stack/autogalaxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ sources:
- README.md
pinned_commit: 65b14d7767da194a21bf0f3a4345f0790af86ed4
last_updated: 2026-08-01
content_sha256: edcdfaee1873806090b90e1a7537646c94fd2c78e699ffaf3ab447ef3f3bb84d
content_sha256: c9cb7e2d004800e67686a35927da1463da9cab032379360200c0269381566983
---

# PyAutoGalaxy — galaxy structure and galaxy modelling
Expand Down Expand Up @@ -177,7 +177,7 @@ write `af.Model(ag.lp.Sersic)`, the default prior for each parameter comes from
## Dependencies

`autofit`, `autoarray`, `astropy`, `nautilus-sampler`. Optional extras add `numba`,
`pynufft`, `zeus-mcmc`, `getdist`, and — via `autogalaxy[jax]` — `autofit[jax]`
`zeus-mcmc`, `getdist`, and — via `autogalaxy[jax]` — `autofit[jax]`
(JAX, jaxlib, jaxnnls, optax) plus `jax_zero_contour`.

## See also
Expand Down
Loading