Cygwin: mmap: allow remapping part of an existing anonymous mapping
[newlib-cygwin.git] / newlib / libm / common / isgreater.c
blobcac9b10c4d82b7f26864f900e08ac5502b1c2a00
1 /* isgreater.c: This file contains no source code, but rather only the
2 * man-page comments. All of the documented "functions" are actually macros
3 * defined in math.h (q.v.). */
4 /*
5 FUNCTION
6 <<isgreater>>, <<isgreaterequal>>, <<isless>>, <<islessequal>>, <<islessgreater>>, and <<isunordered>>---comparison macros
7 INDEX
8 isgreater
9 INDEX
10 isgreaterequal
11 INDEX
12 isless
13 INDEX
14 islessequal
15 INDEX
16 islessgreater
17 INDEX
18 isunordered
20 SYNOPSIS
21 #include <math.h>
22 int isgreater(real-floating <[x]>, real-floating <[y]>);
23 int isgreaterequal(real-floating <[x]>, real-floating <[y]>);
24 int isless(real-floating <[x]>, real-floating <[y]>);
25 int islessequal(real-floating <[x]>, real-floating <[y]>);
26 int islessgreater(real-floating <[x]>, real-floating <[y]>);
27 int isunordered(real-floating <[x]>, real-floating <[y]>);
29 DESCRIPTION
30 <<isgreater>>, <<isgreaterequal>>, <<isless>>, <<islessequal>>,
31 <<islessgreater>>, and <<isunordered>> are macros defined for use in
32 comparing floating-point numbers without raising any floating-point
33 exceptions.
35 The relational operators (i.e. <, >, <=, and >=) support the usual mathematical
36 relationships between numeric values. For any ordered pair of numeric
37 values exactly one of the relationships--less, greater, and equal--is
38 true. Relational operators may raise the "invalid" floating-point
39 exception when argument values are NaNs. For a NaN and a numeric value, or
40 for two NaNs, just the unordered relationship is true (i.e., if one or both
41 of the arguments a NaN, the relationship is called unordered). The specified
42 macros are quiet (non floating-point exception raising) versions of the
43 relational operators, and other comparison macros that facilitate writing
44 efficient code that accounts for NaNs without suffering the "invalid"
45 floating-point exception. In the synopses shown, "real-floating" indicates
46 that the argument is an expression of real floating type.
48 Please note that saying that the macros do not raise floating-point
49 exceptions, it is referring to the function that they are performing. It
50 is certainly possible to give them an expression which causes an exception.
51 For example:
53 o NaN < 1.0
54 causes an "invalid" exception,
55 o isless(NaN, 1.0)
56 does not, and
57 o isless(NaN*0., 1.0)
58 causes an exception due to the "NaN*0.", but not from the
59 resultant reduced comparison of isless(NaN, 1.0).
62 RETURNS
63 @comment Formatting note: "$@" forces a new line
64 No floating-point exceptions are raised for any of the macros.@*
65 The <<isgreater>> macro returns the value of (x) > (y).@*
66 The <<isgreaterequal>> macro returns the value of (x) >= (y).@*
67 The <<isless>> macro returns the value of (x) < (y).@*
68 The <<islessequal>> macro returns the value of (x) <= (y).@*
69 The <<islessgreater>> macro returns the value of (x) < (y) || (x) > (y).@*
70 The <<isunordered>> macro returns 1 if either of its arguments is NaN and 0 otherwise.
72 PORTABILITY
73 C99, POSIX.