fix handling of infinity in name/2 and friends.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1721 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
a728bed4f8
commit
1d49a93d76
27
C/stdpreds.c
27
C/stdpreds.c
@ -11,8 +11,11 @@
|
||||
* File: stdpreds.c *
|
||||
* comments: General-purpose C implemented system predicates *
|
||||
* *
|
||||
* Last rev: $Date: 2006-11-08 01:56:47 $,$Author: vsc $ *
|
||||
* Last rev: $Date: 2006-11-16 14:26:00 $,$Author: vsc $ *
|
||||
* $Log: not supported by cvs2svn $
|
||||
* Revision 1.112 2006/11/08 01:56:47 vsc
|
||||
* fix argument order in db statistics.
|
||||
*
|
||||
* Revision 1.111 2006/11/06 18:35:04 vsc
|
||||
* 1estranha
|
||||
*
|
||||
@ -612,6 +615,14 @@ get_char_from_string(int s)
|
||||
}
|
||||
|
||||
|
||||
#ifndef INFINITY
|
||||
#define INFINITY (1.0/0.0)
|
||||
#endif
|
||||
|
||||
#ifndef NAN
|
||||
#define NAN (0.0/0.0)
|
||||
#endif
|
||||
|
||||
static Term
|
||||
get_num(char *t)
|
||||
{
|
||||
@ -630,20 +641,18 @@ get_num(char *t)
|
||||
sign = -1;
|
||||
}
|
||||
if(strcmp(t,"inf") == 0) {
|
||||
Term ta[1];
|
||||
ta[0] = MkAtomTerm(Yap_LookupAtom("inf"));
|
||||
if (sign > 0) {
|
||||
return(Yap_MkApplTerm(Yap_MkFunctor(AtomPlus, 1), 1, ta));
|
||||
return MkFloatTerm(INFINITY);
|
||||
} else {
|
||||
return MkFloatTerm(-INFINITY);
|
||||
}
|
||||
return(Yap_MkApplTerm(Yap_MkFunctor(AtomMinus, 1), 1, ta));
|
||||
}
|
||||
if(strcmp(t,"nan") == 0) {
|
||||
Term ta[1];
|
||||
ta[0] = MkAtomTerm(Yap_LookupAtom("nan"));
|
||||
if (sign > 0) {
|
||||
return(Yap_MkApplTerm(Yap_MkFunctor(AtomPlus, 1), 1, ta));
|
||||
return MkFloatTerm(NAN);
|
||||
} else {
|
||||
return MkFloatTerm(-NAN);
|
||||
}
|
||||
return(Yap_MkApplTerm(Yap_MkFunctor(AtomMinus, 1), 1, ta));
|
||||
}
|
||||
}
|
||||
if (cur_char_ptr[0] == '\0')
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
<h2>Yap-5.1.2:</h2>
|
||||
<ul>
|
||||
<li> FIXED: +inf is a number (obs from Trevor Walker).</li>
|
||||
<li> FIXED: if peek finds EOF get should not return an error (obs
|
||||
from Miguel Filgueiras).</li>
|
||||
<li> FIXED: allow overflows on timestamps.</li>
|
||||
|
Reference in New Issue
Block a user