[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Math.min
From: |
John Leuner |
Subject: |
Math.min |
Date: |
Thu, 09 Aug 2001 22:06:41 +0000 |
User-agent: |
Mutt/1.3.18i |
The comments don't match the code for Math.min:
/**
* Return whichever argument is smaller.
* @param a the first number
* @param b a second number
* @return the smaller of the two numbers.
*/
public static float min(float a, float b) {
if (a == 0.0f && b == 0.0f) // return -0.0f, if a or b is -0.0f
return ((Float.floatToIntBits(a) >> 31) == 1) ? a : b;
return (a < b) ? a : b;
}
/**
* Return whichever argument is smaller.
* @param a the first number
* @param b a second number
* @return the smaller of the two numbers.
*/
public static double min(double a, double b) {
if (a == 0.0d && b == 0.0d) // return -0.0d, if a or b is -0.0d
return ((Double.doubleToLongBits(a) >> 63) == 1) ? a : b;
return (a < b) ? a : b;
}
These mauve tests fail on my JVM:
harness.check (Double.toString (Math.min (Double.NaN, 2.0)), "NaN");
harness.check (Double.toString (Math.min (Double.NEGATIVE_INFINITY,
Double.POSITIVE_INFINITY)),
"-Infinity");
harness.check (Double.toString (Math.min (Double.NEGATIVE_INFINITY, 0.0)),
"-Infinity");
harness.check (Float.toString (Math.min (-1.0f, -2.0f)), "-2.0");
harness.check (Float.toString (Math.min (2.0f, Float.NaN)), "NaN");
harness.check (Float.toString (Math.min (Float.NaN, 2.0f)), "NaN");
harness.check (Float.toString (Math.min (Float.NEGATIVE_INFINITY,
Float.POSITIVE_INFINITY)),
"-Infinity");
harness.check (Float.toString (Math.min (Float.NEGATIVE_INFINITY, 0.0f)),
"-Infinity");
John Leuner