RFR: 8301226: Add clamp() methods to java.lang.Math and to StrictMath [v3]
Tagir F. Valeev
tvaleev at openjdk.org
Mon Feb 6 09:37:20 UTC 2023
> clamp() methods added to Math and StrictMath
>
> `int clamp(long, int, int)` is somewhat different, as it accepts a `long` value and safely clamps it to an `int` range. Other overloads work with a particular type (long, float and double). Using similar approach in other cases (e.g. `float clamp(double, float, float)`) may cause accidental precision loss even if the value is within range, so I decided to avoid this.
>
> In all cases, `max >= min` precondition should met. For double and float we additionally order `-0.0 < 0.0`, similarly to what Math.max or Double.compare do. In double and float overloads I try to keep at most one arg-check comparison on common path, so the order of checks might look unusual.
>
> For tests, I noticed that tests in java/lang/Math don't use any testing framework (even newer tests), so I somehow mimic the approach of neighbour tests.
Tagir F. Valeev has updated the pull request incrementally with one additional commit since the last revision:
Spaces in exception message
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12428/files
- new: https://git.openjdk.org/jdk/pull/12428/files/2ecba76e..9b73965a
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12428&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12428&range=01-02
Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/12428.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12428/head:pull/12428
PR: https://git.openjdk.org/jdk/pull/12428
More information about the core-libs-dev
mailing list