Spec-Zone.ru › C

fmax, fmaxf, fmaxl

Определено в заголовке <math.h>
float       fmaxf( float x, float y );
(1) (с C99)
double      fmax( double x, double y );
(2) (с C99)
long double fmaxl( long double x, long double y );
(3) (с C99)
Определено в заголовке <tgmath.h>
#define fmax( x, y )
(4) (с C99)
1-3) Возвращает большее из двух аргументов с плавающей точкой, рассматривая NaN как пропущенные данные (между NaN и числовым значением выбирается числовое значение).
4) Типо-генерическая макро-функция: Если у любого аргумента тип long double, вызывается fmaxl. В противном случае, если у любого аргумента целочисленный тип или тип double, вызывается fmax. В противном случае, вызывается fmaxf.

Параметры

x, y - значения с плавающей точкой

Значение, возвращаемое функцией

При успешном выполнении возвращает большее из двух значений с плавающей точкой. Возвращаемое значение точное и не зависит от режимов округления.

Обработка ошибок

Эта функция не подвержена никаким условиям ошибок, указанным в math_errhandling.

Если реализация поддерживает IEEE арифметику с плавающей точкой (IEC 60559),

  • Если один из двух аргументов NaN, возвращается значение другого аргумента.
  • NaN возвращается только если оба аргумента NaN.

Примечания

Эта функция не обязана учитывать знак нуля, хотя некоторые реализации дополнительно требуют, чтобы если один аргумент +0, а другой -0, то возвращался +0.

Пример

#include <stdio.h>
#include <math.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));
}

Вывод:

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

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.12.12.2 Функции fmax (с. 188)
    • 7.25 Типо-генерическая математика <tgmath.h> (с. 397)
    • F.10.9.2 Функции fmax (с. 386)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.12.12.2 Функции fmax (с. 257-258)
    • 7.25 Типо-генерическая математика <tgmath.h> (с. 373-375)
    • F.10.9.2 Функции fmax (с. 530)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12.12.2 Функции fmax (с. 238-239)
    • 7.22 Типо-генерическая математика <tgmath.h> (с. 335-337)
    • F.9.9.2 Функции fmax (с. 466)

См. также

isgreater
(C99)
проверяет, больше ли первый аргумент с плавающей точкой, чем второй
(функция макроса)
fminfminffminl
(C99)(C99)(C99)
определяет меньшее из двух значений с плавающей точкой
(функция)
Документация C++ для fmax

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/fmax

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API