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 2019/12/29 22:06:04 UTC
[commons-numbers] 07/07: Pre-compute bit representation of -0.0.
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
commit fd3e2f1e8c0d2955556164d9223aa463e99af9da
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Sun Dec 29 21:58:52 2019 +0000
Pre-compute bit representation of -0.0.
---
.../src/main/java/org/apache/commons/numbers/complex/Complex.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
index e7c247f..967a196 100644
--- a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
+++ b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
@@ -85,6 +85,8 @@ public final class Complex implements Serializable {
private static final double ROOT2 = Math.sqrt(2);
/** The number of bits of precision of the mantissa of a {@code double} + 1: {@code 54}. */
private static final double PRECISION_1 = 54;
+ /** The bit representation of {@code -0.0}. */
+ private static final long NEGATIVE_ZERO_LONG_BITS = Double.doubleToLongBits(-0.0);
/**
* Crossover point to switch computation for asin/acos factor A.
@@ -2544,7 +2546,7 @@ public final class Complex implements Serializable {
* @return {@code true} if {@code d} is negative.
*/
private static boolean negative(double d) {
- return d < 0 || equals(d, -0.0);
+ return d < 0 || Double.doubleToLongBits(d) == NEGATIVE_ZERO_LONG_BITS;
}
/**