Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor to directly support higher order derivatives #341

Merged
merged 5 commits into from
May 18, 2024

Conversation

pulsipher
Copy link
Collaborator

@pulsipher pulsipher commented May 17, 2024

This refactor makes it so we can store derivatives of arbitrary order instead of only using 1st order derivatives that are nested for higher orders. Additions/fixes include:

  • Derivative objects now store order to be any order desired
  • Where possible, InfiniteOpt will unnest derivatives (e.g., deriv(deriv(y, t), t) == deriv(y, t, t))
  • Finite difference schemes of arbitrary order are supported
  • For derivative methods that do not directly support higher order derivatives, InfiniteOpt will automatically reformulate them into nested 1st order derivatives
  • Printing now distinguishes between ordinary derivatives and partial derivatives
  • Fixes unnoticed bug with derivative deletion that left deleted derivatives inside constraints

Closes #197

@pulsipher pulsipher added this to the v0.6 milestone May 17, 2024
@pulsipher pulsipher added documentation Improvements or additions to documentation enhancement New feature or request breaking This will introduce breaking changes to the API transformations Something to do with model transformations labels May 17, 2024
Copy link

codecov bot commented May 17, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.74%. Comparing base (f1b41c2) to head (0d7748e).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #341   +/-   ##
=======================================
  Coverage   99.74%   99.74%           
=======================================
  Files          36       36           
  Lines        6589     6670   +81     
=======================================
+ Hits         6572     6653   +81     
  Misses         17       17           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@pulsipher pulsipher changed the title Refactor to support higher order derivatives Refactor to directly support higher order derivatives May 18, 2024
@pulsipher pulsipher merged commit dc1e303 into master May 18, 2024
10 checks passed
@pulsipher pulsipher deleted the deriv_refactor branch May 18, 2024 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking This will introduce breaking changes to the API documentation Improvements or additions to documentation enhancement New feature or request transformations Something to do with model transformations
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Maintain Higher-Order Derivative Representations
1 participant