Skip to content

CSpline - Fix segment function and add utils to constrain parameter calculations #3593

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

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

eslickj
Copy link
Contributor

@eslickj eslickj commented May 3, 2025

Fixes

There was a bug in the segment function in the parameter class. The function is just used for testing and plotting cubic splines, so it is not likely to have affected anything. It's fixed and tests are added that would catch similar future issues.

Summary/Motivation:

This fixes a bug and adds parameter calculation options that allow you to impose certain properties on the cubic spline.

Changes proposed in this PR:

  • Fix bug in segments method in CsplineParameters class (use for plotting and testing)
  • Add option to extend the curve to extrapolate linearly from the endpoints using endpoint slope
  • Add function to add constraints to parameter calculation problem to encourage the cspline to be increasing
  • Add function to add constraints to parameter calculation problem to encourage the cspline to be decreasing
  • Add function to add constraints to parameter calculation problem to require the function to be convex
  • Add function to add constraints to parameter calculation problem to require the function to be concave

Legal Acknowledgement

By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

Copy link

codecov bot commented May 6, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 88.77%. Comparing base (86f5f05) to head (d16d1f7).
Report is 21 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3593      +/-   ##
==========================================
+ Coverage   88.75%   88.77%   +0.01%     
==========================================
  Files         890      890              
  Lines      102259   102398     +139     
==========================================
+ Hits        90762    90904     +142     
+ Misses      11497    11494       -3     
Flag Coverage Δ
builders 26.59% <7.74%> (-0.04%) ⬇️
default 84.89% <100.00%> (?)
expensive 33.97% <7.74%> (?)
linux 86.56% <100.00%> (-1.94%) ⬇️
linux_other 86.56% <100.00%> (+0.02%) ⬆️
osx 82.86% <100.00%> (+0.02%) ⬆️
win 84.76% <100.00%> (+0.02%) ⬆️
win_other 84.76% <100.00%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mrmundt
Copy link
Contributor

mrmundt commented Jun 2, 2025

FYI that there is a pretty silly false positive in the typos check right now that I am hoping they'll do a hot patch to fix. I'm monitoring the PR that their team opened (crate-ci/typos#1311)

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.

4 participants