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)
См. также
|
(C99) | проверяет, больше ли первый аргумент с плавающей точкой, чем второй (функция макроса) |
|
(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