std:: fmax, std:: fmaxf, std:: fmaxl
|
Определено в заголовочном файле
<cmath>
|
||
| (1) | ||
|
float
fmax
(
float
x,
float
y
)
;
double
fmax
(
double
x,
double
y
)
;
|
(до C++23) | |
|
constexpr
/*floating-point-type*/
fmax
(
/*floating-point-type*/
x,
|
(начиная с 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) |
|
SIMD перегрузка
(начиная с C++26)
|
||
|
Определено в заголовочном файле
<simd>
|
||
|
template
<
class
V0,
class
V1
>
constexpr
/*math-common-simd-t*/
<
V0, V1
>
|
(S) | (начиная с C++26) |
|
Дополнительные перегрузки
(начиная с C++11)
|
||
|
Определено в заголовочном файле
<cmath>
|
||
|
template
<
class
Integer
>
double fmax ( Integer x, Integer y ) ; |
(A) | (constexpr начиная с C++23) |
std::fmax
для всех неквалифицированных cv типов с плавающей точкой в качестве типа параметров.
(since C++23)
|
S)
SIMD перегрузка выполняет поэлементное вычисление
std::fmax
для
v_x
и
v_y
.
|
(since C++26) |
|
A)
Дополнительные перегрузки предоставляются для всех целочисленных типов, которые трактуются как
double
.
|
(since C++11) |
Содержание |
Параметры
| x, y | - | значения с плавающей точкой или целочисленные значения |
Возвращаемое значение
В случае успеха возвращает большее из двух значений с плавающей точкой. Возвращаемое значение является точным и не зависит от каких-либо режимов округления.
Обработка ошибок
Эта функция не подвержена ни одному из условий ошибок, указанных в math_errhandling .
Если реализация поддерживает арифметику с плавающей запятой IEEE (IEC 60559),
- Если один из двух аргументов является NaN, возвращается значение другого аргумента.
- Только если оба аргумента являются NaN, возвращается NaN.
Примечания
Эта функция не обязана учитывать знак нуля, хотя некоторые реализации дополнительно требуют, чтобы если один аргумент + 0 , а другой - 0 , то возвращалось значение + 0 .
Дополнительные перегрузки не обязаны быть предоставлены в точности как (A) . Они должны быть лишь достаточными для обеспечения того, чтобы для их первого аргумента num1 и второго аргумента num2 :
|
(до C++23) |
|
Если
num1
и
num2
имеют арифметические типы, то
std
::
fmax
(
num1, num2
)
имеет тот же эффект, что и
std
::
fmax
(
static_cast
<
/*common-floating-point-type*/
>
(
num1
)
,
Если такого типа с плавающей запятой с наибольшим рангом и подрангом не существует, то разрешение перегрузки не приводит к пригодному кандидату из предоставленных перегрузок. |
(начиная с C++23) |
Пример
Вывод:
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
|
|