Re: [PATCH] numeric.c:S_mulexp10 -- quit when you can
Craig A. Berry [Fri, 7 Jun 2002 22:55:34 +0000 (17:55 -0500)]
From: "Craig A. Berry" <craigberry@mac.com>
Message-Id: <a05111b02b92724737054@[172.16.52.1]>

Handle also underflow on non-IEEE.

p4raw-id: //depot/perl@17081

numeric.c

index 1cb24d2..f95fde3 100644 (file)
--- a/numeric.c
+++ b/numeric.c
@@ -744,9 +744,8 @@ S_mulexp10(NV value, I32 exponent)
      * [1] Trying to establish a condition handler to trap floating point
      *     exceptions is not a good idea. */
 #if defined(VMS) && !defined(__IEEE_FP) && defined(NV_MAX_10_EXP)
-    if (!negative &&
-        (log10(value) + exponent) >= (NV_MAX_10_EXP))
-        return NV_MAX;
+    if ((log10(value) + exponent) >= (NV_MAX_10_EXP))
+        return negative ? 0.0 : NV_MAX;
 #endif
 
     /* In UNICOS and in certain Cray models (such as T90) there is no