Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Instead of special-casing lognorm to only autoscale from positive
values, perform autoscaling from values that map to finite transformed
values. This ensures e.g. that make_norm_from_scale(LogitScale)
automatically does the right thing (autoscaling from values in [0, 1]).
This means that autoscale() and autoscale_None() are now slightly more
expensive (because the transform needs to be applied), so skip the call
to autoscale_None if not needed. However, note that these should
typically only be called once per norm anyways, so hopefully this isn't
a bottleneck.
(Another idea would be to use
trf.inverse().transform([-np.inf, np.inf])
as clipping bounds, but there are some tests using
x->x**2
/
x->sqrt(x)
as a test for FuncNorm, which 1. doesn't go all the wayto -inf, and 2. isn't even increasing for negative x's, so that idea
doesn't work.)
(See the first remaining issue of #20752, which is the motivation for this.)
PR Summary
PR Checklist
Tests and Styling
pytest
passes).flake8-docstrings
and runflake8 --docstring-convention=all
).Documentation
doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).