On Sun, 23 Jun 2024 09:53:48 GMT, fabioromano1 <d...@openjdk.org> wrote:

>>> why the documentation does not specify that the method assumes the 
>>> arguments are normalized?
>> 
>> Well, the best answer I can offer is "because no one documented it yet". 
>> `MutableBigInteger` is an internal class, so most people never see its 
>> documentation.
>>> And why the method subtract(MutableBigInteger) does not call normalize() on 
>>> arguments before calling compare(MutableBigInteger)? Does subtract assume 
>>> implicitly that the arguments are normalized too?
>> 
>> Most likely. If you check the code you'll notice that most methods that 
>> change the `MutableBigInteger` value (like `subtract`) call `normalize` 
>> after performing the operation, so the values should be normalized most of 
>> the time.
>
>> Most likely. If you check the code you'll notice that most methods that 
>> change the `MutableBigInteger` value (like `subtract`) call `normalize` 
>> after performing the operation, so the values should be normalized most of 
>> the time.
> 
> @djelinski Unfortunately, this is not always true. In fact, without forcing 
> normalization before comparing, the program leads to failure in thousands of 
> cases, while forcing the normalization resolves all the failures...
> 
> So, the question is: since it is not always guaranteed that the arguments are 
> normalized, is it responsibility of `subtract` to normalize arguments?

Which program are you referring to?

It is the responsibility of the caller of `subtract` to ensure that the 
arguments are normalized. This may or may not require calling `normalize`, 
depending on whether the argument is normalized or not.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19710#discussion_r1650038762

Reply via email to