28package com.jogamp.math;
38 @SuppressWarnings(
"unused")
39 private static void calculateMachineEpsilonDouble() {
46 }
while (1.0 + (machEps / 2.0) != 1.0);
47 machEpsilon = machEps;
49 private static volatile boolean machEpsilonAvail =
false;
50 private static double machEpsilon = 0f;
60 if( !machEpsilonAvail ) {
62 if( !machEpsilonAvail ) {
63 machEpsilonAvail =
true;
64 calculateMachineEpsilonDouble();
71 public static final double E = 2.7182818284590452354;
74 public static final double PI = 3.14159265358979323846;
89 public static double adegToRad(
final double arc_degree) {
90 return arc_degree *
PI / 180.0;
95 return rad * 180.0 /
PI;
124 public static final double EPSILON = 2.220446049250313E-16;
146 public static boolean isEqualRaw(
final double a,
final double b) {
148 return Double.doubleToLongBits(a) == Double.doubleToLongBits(b);
167 public static boolean isEqual(
final double a,
final double b,
final double epsilon) {
168 if( 0 == epsilon && Math.abs(a - b) == 0 ||
169 0 != epsilon && Math.abs(a - b) < epsilon ) {
173 return Double.doubleToLongBits(a) == Double.doubleToLongBits(b);
189 public static boolean isEqual(
final double a,
final double b) {
190 if ( Math.abs(a - b) <
EPSILON ) {
194 return Double.doubleToLongBits(a) == Double.doubleToLongBits(b);
205 public static boolean isEqual2(
final double a,
final double b) {
206 return Math.abs(a - b) <
EPSILON;
223 public static int compare(
final double a,
final double b) {
230 final long aBits = Double.doubleToLongBits(a);
231 final long bBits = Double.doubleToLongBits(b);
232 if( aBits == bBits ) {
234 }
else if( aBits < bBits ) {
259 public static int compare(
final double a,
final double b,
final double epsilon) {
260 if( 0 == epsilon && Math.abs(a - b) == 0 ||
261 0 != epsilon && Math.abs(a - b) < epsilon ) {
281 public static boolean isZero(
final double a,
final double epsilon) {
282 return 0 == epsilon && a == 0 ||
283 0 != epsilon && Math.abs(a) < epsilon;
290 public static boolean isZero(
final double a) {
Basic Double math utility functions.
static boolean isZero(final double a)
Returns true if value is zero, i.e.
static boolean isZero(final double a, final double epsilon)
Returns true if value is zero, i.e.
static double adegToRad(final double arc_degree)
Converts arc-degree to radians.
static boolean isEqual(final double a, final double b)
Returns true if both values are equal, i.e.
static final double PI
The value PI, i.e.
static final double QUARTER_PI
The value PI/4, i.e.
static double getMachineEpsilon()
Return computed machine Epsilon value.
static int compare(final double a, final double b, final double epsilon)
Returns -1, 0 or 1 if a is less, equal or greater than b, taking epsilon into account for equality.
static int compare(final double a, final double b)
Returns true if both values are equal w/o regarding an epsilon.
static double radToADeg(final double rad)
Converts radians to arc-degree.
static final double INV_DEVIANCE
Inversion Epsilon, used with equals method to determine if two inverted matrices are close enough to ...
static final double EPSILON
Epsilon for floating point {@value}, as once computed via getMachineEpsilon() on an AMD-64 CPU.
static boolean isEqual(final double a, final double b, final double epsilon)
Returns true if both values are equal, i.e.
static boolean isEqualRaw(final double a, final double b)
Return true if both values are equal w/o regarding an epsilon.
static final double SQUARED_PI
The value PI^2.
static boolean isEqual2(final double a, final double b)
Returns true if both values are equal, i.e.
static final double TWO_PI
The value 2PI, i.e.
static final double HALF_PI
The value PI/2, i.e.