From fb0f3fddb6da57486eccfdf3c2e07907978b6d6b Mon Sep 17 00:00:00 2001 From: beckermr Date: Sat, 9 May 2026 06:33:41 -0500 Subject: [PATCH 1/3] fix: better accuracy lanczos fourier-space interp --- jax_galsim/interpolant.py | 14 ++++++++------ tests/GalSim | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/jax_galsim/interpolant.py b/jax_galsim/interpolant.py index 2e18986d..fb77fe88 100644 --- a/jax_galsim/interpolant.py +++ b/jax_galsim/interpolant.py @@ -1498,12 +1498,14 @@ def _xval_noraise(self, x): # it gets recompiled as needed for combinations of n, conserve_dc, du, and krange @functools.partial(jax.jit, static_argnames=("n", "conserve_dc", "du", "krange")) def _interp_kval(k, n, conserve_dc, du, krange): - _idata = _lanczos_kval_interp_table( - n, - du, - krange, - conserve_dc, - ) + with jax.ensure_compile_time_eval(): + _idata = _lanczos_kval_interp_table( + n, + du / 3.0, # jax-galsim uses a slightly less accurate interpolation + # function (akima vs cubic spline) and so needs a smaller spacing + krange, + conserve_dc, + ) return akima_interp(jnp.abs(k), *_idata, fixed_spacing=True) def _kval_noraise(self, k): diff --git a/tests/GalSim b/tests/GalSim index 89723bcd..6434d3f6 160000 --- a/tests/GalSim +++ b/tests/GalSim @@ -1 +1 @@ -Subproject commit 89723bcd581b5fc5d00acaab0b23fd38df171fdc +Subproject commit 6434d3f66e98ef83a1a194d1f87988476a206dae From 89ff4d6a455ef391b10b17532af644ca47b6f12e Mon Sep 17 00:00:00 2001 From: beckermr Date: Sat, 9 May 2026 06:38:34 -0500 Subject: [PATCH 2/3] perf: 2.3x is ok --- jax_galsim/interpolant.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jax_galsim/interpolant.py b/jax_galsim/interpolant.py index fb77fe88..1b489398 100644 --- a/jax_galsim/interpolant.py +++ b/jax_galsim/interpolant.py @@ -1501,8 +1501,10 @@ def _interp_kval(k, n, conserve_dc, du, krange): with jax.ensure_compile_time_eval(): _idata = _lanczos_kval_interp_table( n, - du / 3.0, # jax-galsim uses a slightly less accurate interpolation + # jax-galsim uses a slightly less accurate interpolation # function (akima vs cubic spline) and so needs a smaller spacing + # 2.3x appears to be ok + du / 2.3, krange, conserve_dc, ) From 0bf5eee926ddd27dc932ac2cf60eacc5f9f2c2df Mon Sep 17 00:00:00 2001 From: beckermr Date: Sat, 9 May 2026 07:22:12 -0500 Subject: [PATCH 3/3] test: put back submodule --- tests/GalSim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/GalSim b/tests/GalSim index 6434d3f6..bcaad957 160000 --- a/tests/GalSim +++ b/tests/GalSim @@ -1 +1 @@ -Subproject commit 6434d3f66e98ef83a1a194d1f87988476a206dae +Subproject commit bcaad9579dfc67d0542a2f6cbc6e900c8c7a549b