On Thu, 24 Apr 2025 20:18:42 GMT, fabioromano1 <d...@openjdk.org> wrote:

>> @fabioromano1 I just had a cursory glance at this PR.
>> 
>> AFAIU, there are two main contributions here:
>> 
>> - Performance enhancements in `pow()`, which is of general interest and does 
>> not require submitting a [CSR](https://wiki.openjdk.org/display/csr/Main).
>> - Introduction of a new public API point for the _n_-th root, which would 
>> require a CSR.
>> 
>> It's important to understand that if we add public API points, there must be 
>> some evidence and consensus about their general usefulness and demand for 
>> them. Every addition is a commitment for this community in terms of code 
>> maintenance, reviews, testing, documentation, so they should be evaluated 
>> with this perspective in mind.
>> 
>> In this case, I feel that the proposed _n_-th root might not be among the 
>> top priority API points to add to `BigInteger`. Perhaps the overall plan is 
>> to use this method to implement a _n_-th root in `BigDecimal` in some 
>> followup PR, but this is not stated here.
>> 
>> Anyway, a [preliminary 
>> discussion](https://openjdk.org/guide/#socialize-your-change) about the 
>> proposal should take place on the mailing list, _before_ submitting the PR 
>> and invest too much work on the code.
>> 
>> To make progress here, I suggest to split this PR in two, if technically 
>> possible:
>> 
>> - One for the enhancements in `pow`, with JMH results before/after.
>> - Another PR for the proposed _n_-th root.
>> 
>> Thanks
>
>> * Performance enhancements in `pow()`, which is of general interest and does 
>> not require submitting a [CSR](https://wiki.openjdk.org/display/csr/Main).
> 
> @rgiulietti Yes, but here, the primary enhancement in `pow()` is not 
> concerned most on execution time, but rather in memory optimization, because 
> the PR implementation does the "shift of the exponent" squaring the result 
> rather than the base, so the base is not squared like in the current 
> implementation, and this permits to save about half of the memory.
> 
>> To make progress here, I suggest to split this PR in two, if technically 
>> possible:
>> 
>> * One for the enhancements in `pow`, with JMH results before/after.
>> * Another PR for the proposed _n_-th root.
> 
> I'm not very sure if it is technically possible, because both `pow()` and 
> `nthRoot()` requires the computation of a power of a long, so that code has 
> to be shared by both methods, and so a supposed PR for `nthRoot()` would 
> require that method.

@fabioromano1 In this case, we will add the common code to pow() enhancement - 
since it does not require a CSR, it is most likely to be integrated before 
nthRoot() addition, and nthRoot() can be a dependent PR on the pow() 
enhancement (i.e. you create a new branch against `pr/#` branch in openjdk and 
open pr, such a pr is a dependent)

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

PR Comment: https://git.openjdk.org/jdk/pull/24690#issuecomment-2832321224

Reply via email to