classpath
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]