fmax, fmaxf, fmaxl - cppreference.com (original) (raw)

Defined in header <math.h>
float fmaxf( float x, float y ); (1) (since C99)
double fmax( double x, double y ); (2) (since C99)
long double fmaxl( long double x, long double y ); (3) (since C99)
Defined in header <tgmath.h>
#define fmax( x, y ) (4) (since C99)

1-3) Returns the larger of two floating-point arguments, treating NaNs as missing data (between a NaN and a numeric value, the numeric value is chosen).

  1. Type-generic macro: If any argument has type long double, fmaxl is called. Otherwise, if any argument has integer type or has type double, fmax is called. Otherwise, fmaxf is called.

Contents

[edit] Parameters

x, y - floating-point values

[edit] Return value

If successful, returns the larger of two floating-point values. The value returned is exact and does not depend on any rounding modes.

[edit] Error handling

This function is not subject to any of the error conditions specified in math_errhandling.

If the implementation supports IEEE floating-point arithmetic (IEC 60559),

[edit] Notes

This function is not required to be sensitive to the sign of zero, although some implementations additionally enforce that if one argument is +0 and the other is -0, then +0 is returned.

[edit] Example

#include <math.h> #include <stdio.h>   int main(void) { printf("fmax(2,1) = %f\n", fmax(2,1)); printf("fmax(-Inf,0) = %f\n", fmax(-INFINITY,0)); printf("fmax(NaN,-1) = %f\n", fmax(NAN,-1)); }

Output:

fmax(2,1) = 2.000000 fmax(-Inf,0) = 0.000000 fmax(NaN,-1) = -1.000000

[edit] References

[edit] See also