URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-stable/] [newlib-1.18.0/] [newlib/] [libm/] [common/] [isgreater.c] - Rev 842
Go to most recent revision | Compare with Previous | Blame | View Log
/* 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. */
Go to most recent revision | Compare with Previous | Blame | View Log