Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libm/common/isgreater.c')
-rw-r--r--newlib/libm/common/isgreater.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/newlib/libm/common/isgreater.c b/newlib/libm/common/isgreater.c
new file mode 100644
index 000000000..bd4e95e05
--- /dev/null
+++ b/newlib/libm/common/isgreater.c
@@ -0,0 +1,75 @@
+/* isgreater.c: This file contains no source code, but rather only the
+ * man-page comments. All of the documented "functions" are actually macros
+ * defined in math.h (q.v.). */
+/*
+FUNCTION
+<<isgreater>>, <<isgreaterequal>>, <<isless>>, <<islessequal>>, <<islessgreater>>, and <<isunordered>>--comparison macros
+INDEX
+ isgreater
+INDEX
+ isgreaterequal
+INDEX
+ isless
+INDEX
+ islessequal
+INDEX
+ islessgreater
+INDEX
+ isunordered
+
+ANSI_SYNOPSIS
+ #include <math.h>
+ int isgreater(real-floating <[x]>, real-floating <[y]>);
+ int isgreaterequal(real-floating <[x]>, real-floating <[y]>);
+ int isless(real-floating <[x]>, real-floating <[y]>);
+ int islessequal(real-floating <[x]>, real-floating <[y]>);
+ int islessgreater(real-floating <[x]>, real-floating <[y]>);
+ int isunordered(real-floating <[x]>, real-floating <[y]>);
+
+DESCRIPTION
+<<isgreater>>, <<isgreaterequal>>, <<isless>>, <<islessequal>>,
+<<islessgreater>>, and <<isunordered>> are macros defined for use in
+comparing floating-point numbers without raising any floating-point
+exceptions.
+
+The relational operators (i.e. <, >, <=, and >=) support the usual mathematical
+relationships between numeric values. For any ordered pair of numeric
+values exactly one of the relationships--less, greater, and equal--is
+true. Relational operators may raise the "invalid" floating-point
+exception when argument values are NaNs. For a NaN and a numeric value, or
+for two NaNs, just the unordered relationship is true (i.e., if one or both
+of the arguments a NaN, the relationship is called unordered). The specified
+macros are quiet (non floating-point exception raising) versions of the
+relational operators, and other comparison macros that facilitate writing
+efficient code that accounts for NaNs without suffering the "invalid"
+floating-point exception. In the synopses shown, "real-floating" indicates
+that the argument is an expression of real floating type.
+
+Please note that saying that the macros do not raise floating-point
+exceptions, it is referring to the function that they are performing. It
+is certainly possible to give them an expression which causes an exception.
+For example:
+o+
+o NaN < 1.0
+ causes an "invalid" exception,
+o isless(NaN, 1.0)
+ does not, and
+o isless(NaN*0., 1.0)
+ causes an exception due to the "NaN*0.", but not from the
+resultant reduced comparison of isless(NaN, 1.0).
+o-
+
+RETURNS
+@comment Formatting note: "$@" forces a new line
+No floating-point exceptions are raised for any of the macros.@*
+The <<isgreater>> macro returns the value of (x) > (y).@*
+The <<isgreaterequal>> macro returns the value of (x) >= (y).@*
+The <<isless>> macro returns the value of (x) < (y).@*
+The <<islessequal>> macro returns the value of (x) <= (y).@*
+The <<islessgreater>> macro returns the value of (x) < (y) || (x) > (y).@*
+The <<isunordered>> macro returns 1 if either of its arguments is NaN and 0 otherwise.
+
+PORTABILITY
+C99, POSIX.
+
+*/