From: martynas Date: Tue, 29 Jul 2008 18:19:17 +0000 (+0000) Subject: - man pages for fpclassify, isfinite, isinf, isnan, isnormal, signbit, X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=bcd421d659b30d725bda3a1fe7ff4123b0c2f389;p=openbsd - man pages for fpclassify, isfinite, isinf, isnan, isnormal, signbit, mostly from freebsd - also describe deprecated aliases for isinff, isnanf, finite, finitef - describe behavior on vax - add mlinks for finite, finitef, isfinite, isinf, isinff, isnan, isnanf, isnormal, signbit - add man pages for isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered; from freebsd looked over by jmc@, it's better for him to work on when they are in tree --- diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc index 5c52fa86a42..92e82753fe7 100644 --- a/lib/libc/gen/Makefile.inc +++ b/lib/libc/gen/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.42 2008/07/24 09:31:07 martynas Exp $ +# $OpenBSD: Makefile.inc,v 1.43 2008/07/29 18:19:17 martynas Exp $ # gen sources .PATH: ${LIBCSRCDIR}/arch/${MACHINE_ARCH}/gen ${LIBCSRCDIR}/gen @@ -47,19 +47,19 @@ errlst.o errlst.po: MAN+= alarm.3 auth_subr.3 authenticate.3 basename.3 clock.3 confstr.3 \ ctermid.3 ctype.3 daemon.3 devname.3 directory.3 dirname.3 err.3 \ - exec.3 fnmatch.3 fpgetmask.3 frexp.3 ftok.3 fts.3 ftw.3 getbsize.3 \ - getcap.3 getcwd.3 getdomainname.3 getdiskbyname.3 getfsent.3 \ - getgrent.3 getgrouplist.3 gethostname.3 getloadavg.3 getmntinfo.3 \ - getnetgrent.3 getpagesize.3 getpass.3 getpwent.3 getttyent.3 \ - getusershell.3 glob.3 initgroups.3 isalnum.3 isalpha.3 isascii.3 \ - isblank.3 iscntrl.3 isdigit.3 isfdtype.3 isgraph.3 isinf.3 islower.3 \ - isprint.3 ispunct.3 isspace.3 isupper.3 isxdigit.3 ldexp.3 lockf.3 \ - login_cap.3 modf.3 nice.3 nlist.3 pause.3 popen.3 psignal.3 pw_dup.3 \ - pwcache.3 raise.3 readpassphrase.3 scandir.3 setjmp.3 setmode.3 \ - setproctitle.3 siginterrupt.3 signal.3 sigsetops.3 sleep.3 statvfs.3 \ - sysconf.3 sysctl.3 strtofflags.3 syslog.3 time.3 times.3 timezone.3 \ - toascii.3 tolower.3 toupper.3 ttyname.3 ualarm.3 uname.3 unvis.3 \ - usleep.3 utime.3 valloc.3 vis.3 + exec.3 fnmatch.3 fpclassify.3 fpgetmask.3 frexp.3 ftok.3 fts.3 ftw.3 \ + getbsize.3 getcap.3 getcwd.3 getdomainname.3 getdiskbyname.3 \ + getfsent.3 getgrent.3 getgrouplist.3 gethostname.3 getloadavg.3 \ + getmntinfo.3 getnetgrent.3 getpagesize.3 getpass.3 getpwent.3 \ + getttyent.3 getusershell.3 glob.3 initgroups.3 isalnum.3 isalpha.3 \ + isascii.3 isblank.3 iscntrl.3 isdigit.3 isfdtype.3 isgraph.3 \ + isgreater.3 islower.3 isprint.3 ispunct.3 isspace.3 isupper.3 \ + isxdigit.3 ldexp.3 lockf.3 login_cap.3 modf.3 nice.3 nlist.3 pause.3 \ + popen.3 psignal.3 pw_dup.3 pwcache.3 raise.3 readpassphrase.3 \ + scandir.3 setjmp.3 setmode.3 setproctitle.3 siginterrupt.3 signal.3 \ + sigsetops.3 sleep.3 statvfs.3 sysconf.3 sysctl.3 strtofflags.3 \ + syslog.3 time.3 times.3 timezone.3 toascii.3 tolower.3 toupper.3 \ + ttyname.3 ualarm.3 uname.3 unvis.3 usleep.3 utime.3 valloc.3 vis.3 MLINKS+=auth_subr.3 auth_open.3 auth_subr.3 auth_call.3 auth_subr.3 \ auth_challenge.3 auth_subr.3 auth_check_change.3 auth_subr.3 \ @@ -83,13 +83,15 @@ MLINKS+=err.3 verr.3 err.3 errx.3 err.3 verrx.3 err.3 warn.3 err.3 vwarn.3 \ err.3 warnx.3 err.3 vwarnx.3 MLINKS+=exec.3 execl.3 exec.3 execle.3 exec.3 execlp.3 exec.3 execv.3 \ exec.3 execvp.3 +MLINKS+=fpclassify.3 finite.3 fpclassify.3 finitef.3 fpclassify.3 isfinite.3 \ + fpclassify.3 isinf.3 fpclassify.3 isinff.3 fpclassify.3 isnan.3 \ + fpclassify.3 isnanf.3 fpclassify.3 isnormal.3 fpclassify.3 signbit.3 MLINKS+=fpgetmask.3 fpgetround.3 fpgetmask.3 fpgetsticky.3 \ fpgetmask.3 fpsetmask.3 fpgetmask.3 fpsetround.3 \ fpgetmask.3 fpsetsticky.3 MLINKS+=fts.3 fts_open.3 fts.3 fts_read.3 fts.3 fts_children.3 \ fts.3 fts_set.3 fts.3 fts_close.3 MLINKS+=ftw.3 nftw.3 -MLINKS+=isinf.3 isnan.3 isinf.3 isnanf.3 isinf.3 isinff.3 MLINKS+=getcap.3 cgetcap.3 getcap.3 cgetclose.3 getcap.3 cgetent.3 \ getcap.3 cgetfirst.3 getcap.3 cgetmatch.3 getcap.3 cgetnext.3 \ getcap.3 cgetnum.3 getcap.3 cgetset.3 getcap.3 cgetstr.3 \ @@ -110,6 +112,8 @@ MLINKS+=getpwent.3 getpwnam_r.3 getpwent.3 getpwuid_r.3 MLINKS+=getttyent.3 endttyent.3 getttyent.3 getttynam.3 getttyent.3 setttyent.3 MLINKS+=getusershell.3 endusershell.3 getusershell.3 setusershell.3 MLINKS+=glob.3 globfree.3 +MLINKS+=isgreater.3 isgreaterequal.3 isgreater.3 isless.3 isgreater.3 \ + islessequal.3 isgreater.3 islessgreater.3 isgreater.3 isunordered.3 MLINKS+=login_cap.3 login_getclass.3 login_cap.3 login_getstyle.3 login_cap.3 \ login_getcapbool.3 login_cap.3 login_getcapnum.3 login_cap.3 \ login_getcapsize.3 login_cap.3 login_getcapstr.3 login_cap.3 \ diff --git a/lib/libc/gen/fpclassify.3 b/lib/libc/gen/fpclassify.3 new file mode 100644 index 00000000000..7febce0f982 --- /dev/null +++ b/lib/libc/gen/fpclassify.3 @@ -0,0 +1,167 @@ +.\" $OpenBSD: fpclassify.3,v 1.1 2008/07/29 18:19:17 martynas Exp $ +.\" +.\" Copyright (c) 2003 Mike Barcroft +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD: src/lib/libc/gen/fpclassify.3,v 1.6 2005/01/27 05:46:16 das Exp $ +.\" +.Dd $Mdocdate: July 29 2008 $ +.Dt FPCLASSIFY 3 +.Os +.Sh NAME +.Nm fpclassify , +.Nm isfinite , +.Nm isinf , +.Nm isnan , +.Nm isnormal , +.Nm signbit +.Nd "classify a floating-point number" +.Sh SYNOPSIS +.In math.h +.Ft int +.Fn fpclassify "real-floating x" +.Ft int +.Fn isfinite "real-floating x" +.Ft int +.Fn isinf "real-floating x" +.Ft int +.Fn isnan "real-floating x" +.Ft int +.Fn isnormal "real-floating x" +.Ft int +.Fn signbit "real-floating x" +.Sh DESCRIPTION +The +.Fn fpclassify +macro takes an argument of +.Fa x +and returns one of the following manifest constants. +.Bl -tag -width ".Dv FP_SUBNORMAL" +.It Dv FP_INFINITE +Indicates that +.Fa x +is an infinite number. +.It Dv FP_NAN +Indicates that +.Fa x +is not a number (NaN). +.It Dv FP_NORMAL +Indicates that +.Fa x +is a normalized number. +.It Dv FP_SUBNORMAL +Indicates that +.Fa x +is a denormalized number. +.It Dv FP_ZERO +Indicates that +.Fa x +is zero (0 or \-0). +.El +.Pp +The +.Fn isfinite +macro returns a non-zero value if and only if its argument has +a finite (zero, subnormal, or normal) value. +.Pp +The +.Fn isinf , +.Fn isnan , +and +.Fn isnormal +macros return non-zero if and only if +.Fa x +is an infinity, NaN, +or a non-zero normalized number, respectively. +.Pp +The +.Fn signbit +macro takes an argument of +.Fa x +and returns non-zero if the value of its sign is negative, otherwise 0. +.Sh SEE ALSO +.Xr isgreater 3 , +.Xr math 3 +.Sh STANDARDS +The +.Fn fpclassify , +.Fn isfinite , +.Fn isinf , +.Fn isnan , +.Fn isnormal , +and +.Fn signbit +macros conform to +.St -isoC-99 . +.Pp +The symbols +.Fn isinff , +and +.Fn isnanf +are provided as compatibility aliases to +.Fn isinf , +and +.Fn isnan , +respectively, and their uses are deprecated. +Similarly, +.Fn finite +and +.Fn finitef +are deprecated versions of +.Fn isfinite . +.Sh HISTORY +The +.Fn fpclassify , +.Fn isfinite , +.Fn isinf , +.Fn isnan , +.Fn isnormal , +and +.Fn signbit +macros were added in +.Ox 4.4 . +.Bx 3 +introduced +.Fn isinf +and +.Fn isnan +functions, which accepted +.Vt double +arguments; these have been superseded by the macros +described above. +.Sh BUGS +.Tn VAX +floating point does not have distinguished values +for either infinity or not-a-number. +.Fn isinf , +.Fn isinff , +.Fn isnan , +and +.Fn isnanf +routines always return 0 on that architecture. +Similarly, +.Fn finite , +and +.Fn isfinite +always return 1. diff --git a/lib/libc/gen/isgreater.3 b/lib/libc/gen/isgreater.3 new file mode 100644 index 00000000000..97dc6804e6a --- /dev/null +++ b/lib/libc/gen/isgreater.3 @@ -0,0 +1,107 @@ +.\" $OpenBSD: isgreater.3,v 1.1 2008/07/29 18:19:17 martynas Exp $ +.\" +.\" Copyright (c) 2003 David Schultz +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD: src/lib/libc/gen/isgreater.3,v 1.3 2005/02/06 03:23:31 das Exp $ +.\" +.Dd $Mdocdate: July 29 2008 $ +.Dt ISGREATER 3 +.Os +.Sh NAME +.Nm isgreater , +.Nm isgreaterequal , +.Nm isless , +.Nm islessequal , +.Nm islessgreater , +.Nm isunordered +.Nd "compare two floating-point numbers" +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In math.h +.Ft int +.Fn isgreater "real-floating x" "real-floating y" +.Ft int +.Fn isgreaterequal "real-floating x" "real-floating y" +.Ft int +.Fn isless "real-floating x" "real-floating y" +.Ft int +.Fn islessequal "real-floating x" "real-floating y" +.Ft int +.Fn islessgreater "real-floating x" "real-floating y" +.Ft int +.Fn isunordered "real-floating x" "real-floating y" +.Sh DESCRIPTION +Each of the macros +.Fn isgreater , +.Fn isgreaterequal , +.Fn isless , +.Fn islessequal , +and +.Fn islessgreater +take arguments +.Fa x +and +.Fa y +and return a non-zero value if and only if its nominal +relation on +.Fa x +and +.Fa y +is true. +These macros always return zero if either +argument is not a number (NaN), but unlike the corresponding C +operators, they never raise a floating point exception. +.Pp +The +.Fn isunordered +macro takes arguments +.Fa x +and +.Fa y +and returns non-zero if and only if neither +.Fa x +nor +.Fa y +are NaNs. +For any pair of floating-point values, one +of the relationships (less, greater, equal, unordered) holds. +.Sh SEE ALSO +.Xr fpclassify 3 , +.Xr math 3 +.Sh STANDARDS +The +.Fn isgreater , +.Fn isgreaterequal , +.Fn isless , +.Fn islessequal , +.Fn islessgreater , +and +.Fn isunordered +macros conform to +.St -isoC-99 . +.Sh HISTORY +The relational macros described above first appeared in +.Ox 4.4 .