Skip to content

Jacobian operator and autodiff support#61

Merged
kylebeggs merged 8 commits intocleanupfrom
jacobian
Dec 30, 2025
Merged

Jacobian operator and autodiff support#61
kylebeggs merged 8 commits intocleanupfrom
jacobian

Conversation

@kylebeggs
Copy link
Member

@kylebeggs kylebeggs commented Dec 29, 2025

Summary

  • Refactor gradient into jacobian operator for more general use
  • Add reverse-mode autodiff support via ChainRulesCore and Mooncake extensions
  • Refactor PHS derivative functions to use multiple dispatch instead of runtime if-statements
  • Add AVOID_INF consistently to prevent division by zero

Changes

  • New Jacobian operator with proper autodiff support
  • ChainRulesCore extension with rrules for _build_weights()
  • Mooncake extension for reverse-mode differentiation
  • PHS basis functions now use multiple dispatch for normal parameter

Test plan

  • Run existing test suite
  • Verify gradient/jacobian operators work correctly
  • Test autodiff through operators

🤖 Generated with Claude Code

kylebeggs and others added 8 commits December 21, 2025 23:17
Replace runtime if-statements with Julia multiple dispatch for the
normal parameter in PHS derivative functions. Split each function
into two methods: one for Nothing (standard derivative) and one for
AbstractVector (Hermite/directional derivative).

Also adds AVOID_INF consistently to prevent division by zero.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update operator implementations and tests for jacobian/gradient
functionality. Includes documentation updates and test refinements.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Dec 30, 2025

Codecov Report

❌ Patch coverage is 89.08046% with 19 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/operators/operators.jl 72.13% 17 Missing ⚠️
src/operators/gradient.jl 60.00% 2 Missing ⚠️
Files with missing lines Coverage Δ
src/RadialBasisFunctions.jl 100.00% <ø> (ø)
src/basis/polyharmonic_spline.jl 100.00% <100.00%> (ø)
src/operators/directional.jl 100.00% <100.00%> (ø)
src/operators/jacobian.jl 100.00% <100.00%> (ø)
src/solve/execution.jl 99.00% <100.00%> (+0.02%) ⬆️
src/operators/gradient.jl 75.00% <60.00%> (-25.00%) ⬇️
src/operators/operators.jl 82.85% <72.13%> (-17.15%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@kylebeggs kylebeggs merged commit cf0b4af into cleanup Dec 30, 2025
21 of 25 checks passed
@kylebeggs kylebeggs deleted the jacobian branch January 5, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant