You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2020/04/16 21:35:16 UTC
[commons-numbers] branch master updated: BigFraction: Mantissa
cannot be zero in subnormal number
This is an automated email from the ASF dual-hosted git repository.
aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
The following commit(s) were added to refs/heads/master by this push:
new 5daca57 BigFraction: Mantissa cannot be zero in subnormal number
5daca57 is described below
commit 5daca57eea93e42323d35659c118aea43815f3cf
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Thu Apr 16 22:35:11 2020 +0100
BigFraction: Mantissa cannot be zero in subnormal number
Since the value has already been tested against zero any sub-normal
number has a non-zero mantissa.
---
.../java/org/apache/commons/numbers/fraction/BigFraction.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
index d71c1db..996899f 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
@@ -252,12 +252,10 @@ public final class BigFraction
int k;
if (exponent == 0) {
+ // Subnormal number, the effective exponent bias is 1022, not 1023.
+ // Note: mantissa is never zero as that case has been eliminated.
m = mantissa;
- k = 0; // For simplicity, when number is 0.
- if (m != 0) {
- // Subnormal number, the effective exponent bias is 1022, not 1023.
- k = -1074;
- }
+ k = -1074;
} else {
// Normalized number: Add the implicit most significant bit.
m = mantissa | 0x0010000000000000L;