RFR: 8075806: divideExact is missing in java.lang.Math

Raffaello Giulietti raffaello.giulietti at gmail.com
Wed Jul 14 19:32:18 UTC 2021


Sorry, typo

int q = x / y;
if ((x & y & q) >= 0) {
      return q;  // q, not r
}
throw new ArithmeticException("integer overflow");


On 2021-07-14 21:26, Raffaello Giulietti wrote:
> One could also divide first and then check the result:
> 
> int q = x / y;
> if ((x & y & q) >= 0) {
>      return r;
> }
> throw new ArithmeticException("integer overflow");
> 
> No idea about relative perf.
> 
> 
> 
> On 2021-07-13 19:32, Brian Burkhalter wrote:
>> Please consider this proposal to add `divideExact()` methods for 
>> integral data types to `java.lang.Math` thereby rounding out "exact" 
>> support to all four basic arithmetic operations.
>>
>> -------------
>>
>> Commit messages:
>>   - 8075806: divideExact is missing in java.lang.Math
>>
>> Changes: https://git.openjdk.java.net/jdk/pull/4770/files
>>   Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4770&range=00
>>    Issue: https://bugs.openjdk.java.net/browse/JDK-8075806
>>    Stats: 109 lines in 2 files changed: 100 ins; 5 del; 4 mod
>>    Patch: https://git.openjdk.java.net/jdk/pull/4770.diff
>>    Fetch: git fetch https://git.openjdk.java.net/jdk 
>> pull/4770/head:pull/4770
>>
>> PR: https://git.openjdk.java.net/jdk/pull/4770
>>


More information about the core-libs-dev mailing list