summaryrefslogtreecommitdiffstats
path: root/man3/isgreater.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/isgreater.3')
-rw-r--r--man3/isgreater.3145
1 files changed, 145 insertions, 0 deletions
diff --git a/man3/isgreater.3 b/man3/isgreater.3
new file mode 100644
index 0000000..b5c30d5
--- /dev/null
+++ b/man3/isgreater.3
@@ -0,0 +1,145 @@
+'\" t
+.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.\" 2002-07-27 Walter Harms
+.\" this was done with the help of the glibc manual
+.\"
+.TH isgreater 3 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+isgreater, isgreaterequal, isless, islessequal, islessgreater,
+isunordered \- floating-point relational tests without exception for NaN
+.SH LIBRARY
+Math library
+.RI ( libm ", " \-lm )
+.SH SYNOPSIS
+.nf
+.B #include <math.h>
+.PP
+.BI "int isgreater(" x ", " y );
+.BI "int isgreaterequal(" x ", " y );
+.BI "int isless(" x ", " y );
+.BI "int islessequal(" x ", " y );
+.BI "int islessgreater(" x ", " y );
+.BI "int isunordered(" x ", " y );
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.nf
+ All functions described here:
+ _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
+.fi
+.SH DESCRIPTION
+The normal relational operations (like
+.BR < ,
+"less than")
+fail if one of the operands is NaN.
+This will cause an exception.
+To avoid this, C99 defines the macros listed below.
+.PP
+These macros are guaranteed to evaluate their arguments only once.
+The arguments must be of real floating-point type (note: do not pass
+integer values as arguments to these macros, since the arguments will
+.I not
+be promoted to real-floating types).
+.TP
+.BR isgreater ()
+determines \fI(x)\ >\ (y)\fP without an exception
+if
+.I x
+or
+.I y
+is NaN.
+.TP
+.BR isgreaterequal ()
+determines \fI(x)\ >=\ (y)\fP without an exception
+if
+.I x
+or
+.I y
+is NaN.
+.TP
+.BR isless ()
+determines \fI(x)\ <\ (y)\fP without an exception
+if
+.I x
+or
+.I y
+is NaN.
+.TP
+.BR islessequal ()
+determines \fI(x)\ <=\ (y)\fP without an exception
+if
+.I x
+or
+.I y
+is NaN.
+.TP
+.BR islessgreater ()
+determines \fI(x)\ < (y) || (x) >\ (y)\fP
+without an exception if
+.I x
+or
+.I y
+is NaN.
+This macro is not equivalent to \fIx\ !=\ y\fP because that expression is
+true if
+.I x
+or
+.I y
+is NaN.
+.TP
+.BR isunordered ()
+determines whether its arguments are unordered, that is, whether
+at least one of the arguments is a NaN.
+.SH RETURN VALUE
+The macros other than
+.BR isunordered ()
+return the result of the relational comparison;
+these macros return 0 if either argument is a NaN.
+.PP
+.BR isunordered ()
+returns 1 if
+.I x
+or
+.I y
+is NaN and 0 otherwise.
+.SH ERRORS
+No errors occur.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR isgreater (),
+.BR isgreaterequal (),
+.BR isless (),
+.BR islessequal (),
+.BR islessgreater (),
+.BR isunordered ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH VERSIONS
+Not all hardware supports these functions,
+and where hardware support isn't provided, they will be emulated by macros.
+This will result in a performance penalty.
+Don't use these functions if NaN is of no concern for you.
+.SH STANDARDS
+C11, POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001, C99.
+.SH SEE ALSO
+.BR fpclassify (3),
+.BR isnan (3)