On 2016-07-07 18:18, John Platts wrote:
Here is the current significand normalization loop below in the BigDecimal(double, MathContext) constructor: // Normalize while ((significand & 1) == 0) { // i.e., significand is even significand >>= 1; exponent++; }Here is a better way to normalize the significand in the BigDecimal(double, MathContext) constructor: int significandTz = Long.numberOfTrailingZeros(significand); significand >>= significandTz; exponent += significandTz;
Seems correct. Do you have any benchmark showing an improvement from this change? /Claes
