Fix callable interpolation builder symtype#480
Conversation
|
Validation checkpoint for
The complete Core run remains independently blocked after the open #477/#478 test repairs by the untouched magnetic assertion documented in the PR body. |
37ae899 to
11ec3b3
Compare
Register CachedInterpolation's symbolic result as a callable Real-to-Real value, derived through public SymbolicUtils APIs. Add a regression that calls the bound interpolator before building and solving the ODEProblem. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
11ec3b3 to
eb23f16
Compare
|
Final rebase and validation checkpoint:
The PR description now reflects the final base and evidence. |
|
CI downgrade checkpoint: the failed downgrade job resolves the clean-main ModelingToolkitBase 1.0 floor and reaches the already-reproduced |
|
CI documentation checkpoint: #480's docs job confirms the callable interpolation repair itself gets past the prior
The final stacked #481 tree passes the unchanged strict local build end-to-end. Those docs changes remain separate from #480's source/API fix. |
|
All three hosted Core variants now confirm the same unrelated blocker described above: |
|
This is now fully superseded by merged #481. Rebasing this branch onto current |
Please ignore this PR until reviewed by @ChrisRackauckas.
Summary
CachedInterpolationas returning a callableReal -> Realsymbolic valueSymbolicUtils.@symsandSymbolicUtils.symtypeAPIsODEProblemWhy
@register_symbolicotherwise gives the interpolation builder a scalarRealreturn type. The builder actually returns an interpolation function, so later symbolic calls fail withfntype_X_Y(::Type{Real}). This is the failure reported in SciML/ModelingToolkit.jl#4527 and reproduced by the ParametrizedInterpolation documentation example.The implementation intentionally does not use
SymbolicUtils.FnType, which is not public. The public construction was checked with both SymbolicUtils 4.40.0 and the package floor 4.38.1; in both cases the builder symtype is callable and calling it has symtypeReal.This final head is
eb23f169, rebased on current upstreamd0243bd3after #477 and #478 merged. The paired strict documentation repair and end-to-end build are in #481.Local validation
problem=ODEProblem,retcode=Success,samples=8test/sources.jl: exit 0; ParametrizedInterpolation 10 passed and 1 pre-existing brokenGROUP=QA Pkg.test()before the base-only Fix isothermal domain test connections #478 rebase: 19 passed, 19 total; the rebase changed only the unrelated isothermal testgit diff --check: exit 0No test or example is skipped, disabled, loosened, or made warn-only by this PR.
Independent failures observed
Current upstream already contains the Chua and isothermal repairs from #477 and #478. The official
GROUP=Corerun now progresses through those tests and stops at the untouched exact-equality assertion intest/magnetic.jl:66, where the residual is one floating-point ULP. That clean-main failure is under a separate bisect and focused audit; no unrelated numerical assertion is changed here.An exploratory run with DataInterpolations 9.0.2 exposed an unrelated ForwardDiff error, but 9.x is outside this package's declared test compatibility (
DataInterpolations = "8"). The supported resolver choice, 8.10.0, passes the complete source test file as reported above.