From c5fdf5d9bce6c54b53001e20e61209658f2cd3fb Mon Sep 17 00:00:00 2001 From: Toby Driscoll Date: Tue, 30 Jun 2026 17:20:28 -0400 Subject: [PATCH 1/2] upgrade ComplexRegions --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 9dff5742..fbd59188 100644 --- a/Project.toml +++ b/Project.toml @@ -32,7 +32,7 @@ RFAZygoteExt = "Zygote" [compat] ArnoldiVandermonde = "0.1.0" -ComplexRegions = "0.3.9" +ComplexRegions = "0.3.9, 0.4" ComplexValues = "0.3" ForwardDiff = "1" GenericLinearAlgebra = "0.3, 0.4" From 65d2e2a2d552887cf2cc2ed8b059cebb29685e18 Mon Sep 17 00:00:00 2001 From: Toby Driscoll Date: Tue, 30 Jun 2026 17:30:20 -0400 Subject: [PATCH 2/2] Fix latent bugs surfaced by JET analysis Two genuine UndefVarErrors found by JET's report_package: - abstract-rational.jl: the `nodes`/`values` interface stubs referenced an undefined `r` in their error message (arg was unnamed `::Abstract...`), so the fallback threw `UndefVarError(:r)` instead of the intended "not implemented" message. Name the argument `r`. - aaa.jl: the continuum `aaa(f; stats=true)` branch referenced the nonexistent `ConvergenceStats` type and passed an unsupported `stats` kwarg to `Barycentric`, so `stats=true` always errored. Return a stats named tuple instead, mirroring the discrete `aaa(y, z; stats=true)`. The remaining JET reports are known false positives (broadcasting's `getfield(::Broadcasted, ::Symbol)` and a chain through GenericLinearAlgebra's generic `svd`). Full test suite (927 tests) passes. Co-Authored-By: Claude Opus 4.8 --- src/aaa.jl | 8 +++----- src/abstract-rational.jl | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/aaa.jl b/src/aaa.jl index ad657e19..19856754 100644 --- a/src/aaa.jl +++ b/src/aaa.jl @@ -203,16 +203,14 @@ function aaa( y, w = real(y), real(w) end + r = Barycentric(x, y, w) if stats if isreal(w) && isreal(y) weights = real.(weights) vals = real.(vals) end - st = ConvergenceStats(bestm-1, err, nbad, nodes, vals, weights, pol) - r = Barycentric(x, y, w; stats=st) + return r, (; bestindex=bestm-1, err, nbad, nodes, vals, weights, poles=pol) else - r = Barycentric(x, y, w) + return r end - - return r end diff --git a/src/abstract-rational.jl b/src/abstract-rational.jl index 0310e186..2b991d3b 100644 --- a/src/abstract-rational.jl +++ b/src/abstract-rational.jl @@ -78,9 +78,9 @@ abstract type AbstractRationalInterpolant{T,S} <: AbstractRationalFunction{S} en # COV_EXCL_START # Interface stubs "nodes(r) returns a vector of the interpolation nodes of the rational interpolant." -nodes(::AbstractRationalInterpolant) = error("`nodes` not implemented for $(typeof(r))") +nodes(r::AbstractRationalInterpolant) = error("`nodes` not implemented for $(typeof(r))") "values(r) returns a vector of the nodal values of the rational interpolant `r`." -Base.values(::AbstractRationalInterpolant) = error("`values` not implemented for $(typeof(r))") +Base.values(r::AbstractRationalInterpolant) = error("`values` not implemented for $(typeof(r))") Base.length(r::AbstractRationalInterpolant) = length(nodes(r)) # COV_EXCL_STOP