This is an automated email from the git hooks/post-receive script.

ppm-guest pushed a commit to annotated tag v0.38
in repository libmath-prime-util-perl.

commit db88ec8cc32a692f2a223d224c0d27508ed99ca7
Author: Dana Jacobsen <d...@acm.org>
Date:   Thu Feb 27 13:10:19 2014 -0800

    Add some threshold returns to protect vs. messed up rounding modes
---
 util.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/util.c b/util.c
index 694bda0..9484ab9 100644
--- a/util.c
+++ b/util.c
@@ -49,6 +49,9 @@
 #ifndef LDBL_EPSILON
   #define LDBL_EPSILON 1e-16
 #endif
+#ifndef LDBL_MAX
+  #define LDBL_MAX DBL_MAX
+#endif
 
 #define KAHAN_INIT(s) \
   long double s ## _y, s ## _t; \
@@ -1388,6 +1391,9 @@ long double _XS_ExponentialIntegral(long double x) {
   KAHAN_INIT(sum);
 
   if (x == 0) croak("Invalid input to ExponentialIntegral:  x must be != 0");
+  /* Protect against messed up rounding modes */
+  if (x >=  12000) return INFINITY;
+  if (x <= -12000) return 0;
 
   if (x < -1) {
     /* Continued fraction, good for x < -1 */
@@ -1468,6 +1474,7 @@ long double _XS_LogarithmicIntegral(long double x) {
   if (x == 1) return -INFINITY;
   if (x == 2) return li2;
   if (x < 0) croak("Invalid input to LogarithmicIntegral:  x must be >= 0");
+  if (x >= LDBL_MAX) return INFINITY;
   return _XS_ExponentialIntegral(logl(x));
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to