std::fmax, std::fmaxf, std::fmaxl
Определено в заголовке <cmath> | ||
|---|---|---|
| (1) | ||
float fmax ( float x, float y ); double fmax ( double x, double y ); long double fmax ( long double x, long double y ); | (до C++23) | |
constexpr /* floating-point-type */
fmax ( /* floating-point-type */ x,
/* floating-point-type */ y );
| (с C++23) | |
float fmaxf( float x, float y ); | (2) | (с C++11) (constexpr с C++23) |
long double fmaxl( long double x, long double y ); | (3) | (с C++11) (constexpr с C++23) |
| Дополнительные перегрузки (с C++11) | ||
Определено в заголовке <cmath> | ||
template< class Integer > double fmax ( Integer x, Integer y ); | (A) | (constexpr с C++23) |
std::fmax для всех типов с плавающей точкой без cv-квалификаторов в качестве типа параметров.(с C++23)
| A) Дополнительные перегрузки предоставляются для всех целочисленных типов, которые рассматриваются как double. | (с C++11) |
Параметры
| x, y | - | значения с плавающей точкой или целые значения |
Возвращаемое значение
При успехе возвращает большее из двух значений с плавающей точкой. Возвращаемое значение является точным и не зависит от режимов округления.
Обработка ошибок
Данная функция не подвержена никаким из условий ошибок, указанных в math_errhandling.
Если реализация поддерживает IEEE арифметику с плавающей точкой (IEC 60559),
- Если один из двух аргументов равен NaN, возвращается значение другого аргумента.
- Только если оба аргумента равны NaN, возвращается NaN.
Примечания
Данная функция не обязана реагировать на знак нуля, хотя некоторые реализации дополнительно требуют, чтобы если один из аргументов +0 а другой -0, тогда +0 был возвращен.
Дополнительные перегрузки не обязаны предоставляться ровно как (A). Они только должны быть достаточными для того, чтобы для их первого аргумента num1 и второго аргумента num2:
| (до C++23) |
| Если Если такого типа с плавающей точкой с наибольшим рангом и подрангом не существует, то разрешение перегрузки не приводит к пригодной кандидатуре из предоставленных перегрузок. | (с C++23) |
Пример
#include <cmath>
#include <iostream>
int main()
{
std::cout << "fmax(2,1) = " << std::fmax(2, 1) << '\n'
<< "fmax(-Inf,0) = " << std::fmax(-INFINITY, 0) << '\n'
<< "fmax(NaN,-1) = " << std::fmax(NAN, -1) << '\n';
}Вывод:
fmax(2,1) = 2 fmax(-Inf,0) = 0 fmax(NaN,-1) = -1
См. также
|
(C++11) | проверяет, является ли первый аргумент с плавающей точкой больше второго (функция) |
|
(C++11)(C++11)(C++11) | меньшее из двух значений с плавающей точкой (функция) |
| возвращает большее из заданных значений (шаблон функции) |
|
| возвращает наибольший элемент в диапазоне (шаблон функции) |
|
|
(C++11) | возвращает меньшее и большее из двух элементов (шаблон функции) |
|
(C++11) | возвращает наименьший и наибольший элементы в диапазоне (шаблон функции) |
C документация для fmax |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/math/fmax