C programming islessgreater math.h


int islessgreater(float x , float y);
int islessgreater(double x , double y);
int islessgreater(long double x, long double y);

In C programming <math.h> islessgreater determines if the first argument is less than or greater than the second argument.

Parameters:
x -The first argument.

y -The second argument.

Return type
int -Return the value of ‘(x) < (y) || (x) > (y)‘.

Some points to note:

 i) The value of islessgreater(x , y) is same as (x) < (y) || (x) > (y).The only difference between them is unlike ‘(x) < (y) || (x) > (y)’, islessgreater(x, y) does not raise the ‘invalid’ floating-point exception when x and y are unordered.

 ii) +∞ is treated as greater than any valid value,-∞ is treated as smaller than any valid value.

 iii) If one of the arguments is NaN ,0 is always returned.

 iv) If character or int type is passed as argument the function with double as parameter type is called.

Code example

double dx = 10 , dy = 10 ,
x1 = 2.1e20 , x2=2.2e20 ;

float fx = 11 , fy = 10 ;

long double ldx = 10 , ldy = 11 ;

printf(“%i”, islessgreater( dx , dy) ) ; //calls the 2nd version
printf(“\n%i”, islessgreater( fx , fy) ) ; //calls the 1st version
printf(“\n%i”, islessgreater( ldx , ldy) ) ;//calls the 3rd version

printf(“\n%i”, islessgreater( x1 , x2) ) ;
printf(“\n%i”, islessgreater( NAN , INFINITY) ) ;

Output in Visual Studio,

0
1
1
1
0

Link : C nan:myths and conception


Related links

->C islessequal math.h

->C isgreaterequal math.h

->C isunordered math.h