Repository navigation
Conversation
`D(itp(x))` for a symbolic interpolation, e.g. a ModelingToolkit callable parameter, expands to `derivative(itp, x, 1)` with `itp` kept symbolic. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Independent review (Codex CLI 0.166.0 / gpt-6.1-sol), session 01a1983a-42ae-7a93-86ac-92cf834a3011, reviewed head 9f28583
Review written by the reviewer named above in a session other than the PR author's, and copied here by the posting agent without change to its findings. The posting agent did not re-run the reviewer's commands. Summary: Registers differentiation of interpolation-typed symbolic callables and raises the Symbolics compatibility floor to 7.42. The added regression fails on the base and passes on the reviewed head, with independent analytic checks passing and no blocking defects found. Blast radius: Optional Symbolics extension, interpolation-typed symbolic functions, derivative expansion, generated functions, and substitution. Existing concrete numerical implementations are untouched. Evidence: Blind assessment sealed before reading author context. Julia 1.13.2 with Symbolics 7.42.0 and SymbolicUtils 4.54.0: added regression on base 2 passed, 6 failed, 1 errored; head 9/9 passed; existing symbolic tests 6/6 passed on both; independent analytic probe 98/98 passed. No PR CI checks were reported; local runs exercised the changed extension and ForwardDiff-backed second derivatives. Blocking findingsNone. Non-blocking findingsNone. What I ranRead-only GitHub inspection: gh api repos/SciML/DataInterpolations.jl/pulls/616 --jq '{number,state,draft,headRefOid:.head.sha,baseRefName:.base.ref,baseRefOid:.base.sha}'
gh pr view 616 --repo SciML/DataInterpolations.jl --json title,body,url
gh pr checks 616 --repo SciML/DataInterpolations.jl
gh api repos/SciML/DataInterpolations.jl/commits/9f28583ee7e12a10b0c3622b875b7bc448c2b9a0/check-runs --jq '{total_count,check_runs:[.check_runs[]|{name,status,conclusion,html_url}]}'
gh run list --repo SciML/DataInterpolations.jl --branch master --event push --limit 5
gh issue view 1890 --repo JuliaSymbolics/Symbolics.jl
gh pr view 2022 --repo JuliaSymbolics/Symbolics.jl --json title,body,state,mergedAt,urlThe PR was open and draft, at the target head. Git commands, with the checkout represented by git -C "$CHECKOUT" status --short
git -C "$CHECKOUT" rev-parse HEAD
git -C "$CHECKOUT" fetch origin '+refs/pull/616/head:refs/remotes/pr/616' master
git -C "$CHECKOUT" rev-parse origin/master
git -C "$CHECKOUT" merge-base origin/master HEAD
git -C "$CHECKOUT" diff --stat origin/master...HEAD
git -C "$CHECKOUT" diff origin/master...HEAD
git -C "$CHECKOUT" diff --stat b98db80406869b7664d5760ed48785f3f2d5cad6...HEAD
git -C "$CHECKOUT" log -1 --format=%B 9f28583ee7e12a10b0c3622b875b7bc448c2b9a0These exited 0. The checkout was clean. The merge base was the reported live base SHA above. The commit contained neither Exactly three sequential Julia invocations ran, all on Julia 1.13.2. Absolute depot and temporary-directory prefixes are represented by environment variables to comply with the output path restriction. Each invocation used this environment and command form, with the indicated script: JULIA_NUM_THREADS=4 OPENBLAS_NUM_THREADS=1 JULIA_NUM_PRECOMPILE_TASKS=1 JULIA_PKG_PRECOMPILE_AUTO=0 TMPDIR="$REVIEW_TMP" JULIA_DEPOT_PATH="$SHARED_DEPOT:" timeout 3600 julia +1.13.2 --startup-file=no run_head.jl
JULIA_NUM_THREADS=4 OPENBLAS_NUM_THREADS=1 JULIA_NUM_PRECOMPILE_TASKS=1 JULIA_PKG_PRECOMPILE_AUTO=0 TMPDIR="$REVIEW_TMP" JULIA_DEPOT_PATH="$SHARED_DEPOT:" timeout 3600 julia +1.13.2 --startup-file=no run_base.jl
JULIA_NUM_THREADS=4 OPENBLAS_NUM_THREADS=1 JULIA_NUM_PRECOMPILE_TASKS=1 JULIA_PKG_PRECOMPILE_AUTO=0 TMPDIR="$REVIEW_TMP" JULIA_DEPOT_PATH="$SHARED_DEPOT:" timeout 3600 julia +1.13.2 --startup-file=no run_probe.jl
The analytic reference used the unique quadratic through What I did not verifyThe complete derivative test file did not execute because the first invocation lacked direct test dependencies; it was not rerun. Only the two focused symbolic testsets and analytic probe completed. I did not run the package suite, downstream suites, an end-to-end ModelingToolkit model with 🤖 Posted by an AI agent — harness: Claude Code · model: claude-sonnet-5-5 |
Adds the derivative rule for a symbolic interpolation, such as a ModelingToolkit callable parameter
@parameters (itp::LinearInterpolation)(..)(JuliaSymbolics/Symbolics.jl#1890).D(itp(x))now expands toderivative(itp, x, 1)withitpkept symbolic, sojac = trueworks for models usingModelingToolkitStandardLibrary.Blocks.Interpolation. Rules for interpolation objects used directly are unchanged.Needs JuliaSymbolics/Symbolics.jl#2022. The Symbolics compat bound is bumped to the release containing it (7.42), and the version to 10.2.0.
Tested with a new testset in
test/Methods/derivative_tests.jl: first and second derivatives, the chain rule, substitution, and numeric values throughbuild_functionfor two interpolations of the same type.🤖 Generated with Claude Code