octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

isnan in fortran


From: c.
Subject: isnan in fortran
Date: Tue, 10 Apr 2012 12:44:07 +0200

I am regularly building Octave on OSX withg gcc/gfortran 4.2.1

since this changeset:

-----------------------------------
changeset:   14392:d17237256856
user:        Michael Goffioul <address@hidden>
date:        Thu Feb 23 09:12:47 2012 +0000
summary:     Make SLATEC-FN atanh/erfc functions more tolerant about edge cases 
like
-----------------------------------

I need to locally apply the following patch (which I keep in my hq patch 
queue), as gfortran 4.2 does not have isnan:

-----------------------------------
# HG changeset patch
# User Carlo de Falco <address@hidden>
# Date 1334054116 -7200
# Node ID b0734d15d631064e8963ebb4fcb3be1ead97d635
# Parent  b2bf5896ab51fdd40b899d557b971fcd0ee21994
[mq]: isnan

diff -r b2bf5896ab51 -r b0734d15d631 libcruft/slatec-fn/derfc.f
--- a/libcruft/slatec-fn/derfc.f        Mon Apr 09 21:11:18 2012 +0200
+++ b/libcruft/slatec-fn/derfc.f        Tue Apr 10 12:35:16 2012 +0200
@@ -191,7 +191,7 @@
       ENDIF
       FIRST = .FALSE.
 C
-      IF (ISNAN(X)) THEN
+      IF (.NOT.(X.EQ.X)) THEN
          DERFC = X
          RETURN
       ENDIF
diff -r b2bf5896ab51 -r b0734d15d631 libcruft/slatec-fn/erfc.f
--- a/libcruft/slatec-fn/erfc.f Mon Apr 09 21:11:18 2012 +0200
+++ b/libcruft/slatec-fn/erfc.f Tue Apr 10 12:35:16 2012 +0200
@@ -121,7 +121,7 @@
       ENDIF
       FIRST = .FALSE.
 C
-      IF (ISNAN(X)) THEN
+      IF (.NOT.(X.EQ.X)) THEN
          ERFC = X
          RETURN
       ENDIF
-----------------------------------

Does anyone know a cleaner and portable way how these functions could be made 
to work with fortran compilers that do not have ISNAN?


c.

reply via email to

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