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

ENH: give me a scissor or apply Function.clip and Function.crop #546

Open
2 tasks
Gui-FernandesBR opened this issue Feb 6, 2024 · 0 comments
Open
2 tasks
Labels
Enhancement New feature or request, including adjustments in current codes

Comments

@Gui-FernandesBR
Copy link
Member

Is your feature request related to a problem? Please describe.

Mutating Function objects is magical because sometimes we need to do some particular operations with them.
This issue requests two new methods to create new Function objects from other array-based Function objects.

Describe the solution you'd like

Please implement the following:

  • Function.clip : limits the y_array to a certain range, for instance, limit the sin function to be constrained between -1 an 1. This should delete any datapoint with the y value out of the range.
  • Function.crop : limits the x_array to a certain range, for instance, limit the domain of a R1->R1 function to be limited by x=0 and x=1. This should delete any datapoint with the x values out of the range.

Some considerations:

  • The methods should take the array source of the Function, remove the undesired data, return
  • Once we remove data from the array and recreate a function object, all the interpolation coefficients will be recalculated. Should that be a problem?

I'm not sure how we would do (if possible) the same operations in non array-based Functions, so I'm leaving them out of the scope here.

Additional context

@Gui-FernandesBR Gui-FernandesBR added the Enhancement New feature or request, including adjustments in current codes label Feb 6, 2024
@Gui-FernandesBR Gui-FernandesBR added this to the Release v1.X.0 milestone Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request, including adjustments in current codes
Projects
Status: Backlog
Development

No branches or pull requests

1 participant