Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8341402

BigDecimal's square root optimization

XMLWordPrintable

    • In Review
    • generic
    • generic

      A DESCRIPTION OF THE PROBLEM :
      After changing BigInteger.sqrt() algorithm, this can be also used to speed up BigDecimal.sqrt() implementation.

      The main steps of the algorithm are as follows:
      - First argument reduce the value to an integer using the following relations:

      x = y * 10 ^ exp
      sqrt(x) = sqrt(y) * 10^(exp / 2) if exp is even
      sqrt(x) = sqrt(y*10) * 10^((exp-1)/2) is exp is odd

      - Then use BigInteger.sqrt() on the reduced value to compute the numerical digits of the desired result.

      - Finally, scale back to the desired exponent range and perform any adjustment to get the preferred scale in the representation.

      Here is the PR: https://github.com/openjdk/jdk/pull/21301


            webbuggrp Webbug Group
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: