[pure-lang-svn] SF.net SVN: pure-lang: [351] pure/trunk/lib/math.pure
Status: Beta
Brought to you by:
agraef
From: <ag...@us...> - 2008-07-01 13:31:44
|
Revision: 351 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=351&view=rev Author: agraef Date: 2008-07-01 06:31:51 -0700 (Tue, 01 Jul 2008) Log Message: ----------- Add syntactic number predicates. Modified Paths: -------------- pure/trunk/lib/math.pure Modified: pure/trunk/lib/math.pure =================================================================== --- pure/trunk/lib/math.pure 2008-07-01 13:19:05 UTC (rev 350) +++ pure/trunk/lib/math.pure 2008-07-01 13:31:51 UTC (rev 351) @@ -357,3 +357,15 @@ x1!=(x2+:y2) = x1!=x2 || y2!=0; z1@(r1<:t1)!=x2 = z1 != (x2<:0); x1!=z2@(r2<:t2) = (x1<:0) != z2; + +/* Additional number predicates. */ + +realp x = intp x || bigintp x || doublep x; +complexp x = case x of x+:y | x<:y = realp x && realp y; _ = 0 end; +nump x = realp x || complexp x; + +exactp x = intp x || bigintp x || + complexp x && exactp (re x) && exactp (im x) if nump x; + +infp x::double = not nanp x && nanp (x-x); +nanp x::double = x===nan; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |