2.3. Half Comparison Functions
To use these functions, include the header file cuda_fp16.h
in your program.
Functions
- __host__ __device__ bool __heq(const __half a, const __half b)
-
Performs
half
if-equal comparison. - __host__ __device__ bool __hequ(const __half a, const __half b)
-
Performs
half
unordered if-equal comparison. - __host__ __device__ bool __hge(const __half a, const __half b)
-
Performs
half
greater-equal comparison. - __host__ __device__ bool __hgeu(const __half a, const __half b)
-
Performs
half
unordered greater-equal comparison. - __host__ __device__ bool __hgt(const __half a, const __half b)
-
Performs
half
greater-than comparison. - __host__ __device__ bool __hgtu(const __half a, const __half b)
-
Performs
half
unordered greater-than comparison. - __host__ __device__ int __hisinf(const __half a)
-
Checks if the input
half
number is infinite. - __host__ __device__ bool __hisnan(const __half a)
-
Determine whether
half
argument is a NaN. - __host__ __device__ bool __hle(const __half a, const __half b)
-
Performs
half
less-equal comparison. - __host__ __device__ bool __hleu(const __half a, const __half b)
-
Performs
half
unordered less-equal comparison. - __host__ __device__ bool __hlt(const __half a, const __half b)
-
Performs
half
less-than comparison. - __host__ __device__ bool __hltu(const __half a, const __half b)
-
Performs
half
unordered less-than comparison. - __host__ __device__ __half __hmax(const __half a, const __half b)
-
Calculates
half
maximum of two input values. - __host__ __device__ __half __hmax_nan(const __half a, const __half b)
-
Calculates
half
maximum of two input values, NaNs pass through. - __host__ __device__ __half __hmin(const __half a, const __half b)
-
Calculates
half
minimum of two input values. - __host__ __device__ __half __hmin_nan(const __half a, const __half b)
-
Calculates
half
minimum of two input values, NaNs pass through. - __host__ __device__ bool __hne(const __half a, const __half b)
-
Performs
half
not-equal comparison. - __host__ __device__ bool __hneu(const __half a, const __half b)
-
Performs
half
unordered not-equal comparison. - __host__ __device__ bool operator!=(const __half &lh, const __half &rh)
-
Performs
half
unordered compare not-equal operation. - __host__ __device__ bool operator<(const __half &lh, const __half &rh)
-
Performs
half
ordered less-than compare operation. - __host__ __device__ bool operator<=(const __half &lh, const __half &rh)
-
Performs
half
ordered less-or-equal compare operation. - __host__ __device__ bool operator==(const __half &lh, const __half &rh)
-
Performs
half
ordered compare equal operation. - __host__ __device__ bool operator>(const __half &lh, const __half &rh)
-
Performs
half
ordered greater-than compare operation. - __host__ __device__ bool operator>=(const __half &lh, const __half &rh)
-
Performs
half
ordered greater-or-equal compare operation.
2.3.1. Functions
-
__host__ __device__ bool __heq(const __half a, const __half b)
-
Performs
half
if-equal comparison.Performs
half
if-equal comparison of inputsa
andb
. NaN inputs generate false results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of if-equal comparison of
a
andb
.
-
__host__ __device__ bool __hequ(const __half a, const __half b)
-
Performs
half
unordered if-equal comparison.Performs
half
if-equal comparison of inputsa
andb
. NaN inputs generate true results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of unordered if-equal comparison of
a
andb
.
-
__host__ __device__ bool __hge(const __half a, const __half b)
-
Performs
half
greater-equal comparison.Performs
half
greater-equal comparison of inputsa
andb
. NaN inputs generate false results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of greater-equal comparison of
a
andb
.
-
__host__ __device__ bool __hgeu(const __half a, const __half b)
-
Performs
half
unordered greater-equal comparison.Performs
half
greater-equal comparison of inputsa
andb
. NaN inputs generate true results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of unordered greater-equal comparison of
a
andb
.
-
__host__ __device__ bool __hgt(const __half a, const __half b)
-
Performs
half
greater-than comparison.Performs
half
greater-than comparison of inputsa
andb
. NaN inputs generate false results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of greater-than comparison of
a
andb
.
-
__host__ __device__ bool __hgtu(const __half a, const __half b)
-
Performs
half
unordered greater-than comparison.Performs
half
greater-than comparison of inputsa
andb
. NaN inputs generate true results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of unordered greater-than comparison of
a
andb
.
-
__host__ __device__ int __hisinf(const __half a)
-
Checks if the input
half
number is infinite.Checks if the input
half
numbera
is infinite.- Parameters
-
a – [in] - half. Is only being read.
- Returns
-
int
-1 if
a
is equal to negative infinity,1 if
a
is equal to positive infinity,0 otherwise.
-
__host__ __device__ bool __hisnan(const __half a)
-
Determine whether
half
argument is a NaN.Determine whether
half
valuea
is a NaN.- Parameters
-
a – [in] - half. Is only being read.
- Returns
-
bool
true if argument is NaN.
-
__host__ __device__ bool __hle(const __half a, const __half b)
-
Performs
half
less-equal comparison.Performs
half
less-equal comparison of inputsa
andb
. NaN inputs generate false results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of less-equal comparison of
a
andb
.
-
__host__ __device__ bool __hleu(const __half a, const __half b)
-
Performs
half
unordered less-equal comparison.Performs
half
less-equal comparison of inputsa
andb
. NaN inputs generate true results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of unordered less-equal comparison of
a
andb
.
-
__host__ __device__ bool __hlt(const __half a, const __half b)
-
Performs
half
less-than comparison.Performs
half
less-than comparison of inputsa
andb
. NaN inputs generate false results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of less-than comparison of
a
andb
.
-
__host__ __device__ bool __hltu(const __half a, const __half b)
-
Performs
half
unordered less-than comparison.Performs
half
less-than comparison of inputsa
andb
. NaN inputs generate true results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of unordered less-than comparison of
a
andb
.
-
__host__ __device__ __half __hmax(const __half a, const __half b)
-
Calculates
half
maximum of two input values.Calculates
half
max(a
,b
) defined as (a
>b
) ?a
:b
.If either of inputs is NaN, the other input is returned.
If both inputs are NaNs, then canonical NaN is returned.
If values of both inputs are 0.0, then +0.0 > -0.0
- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
half
-
__host__ __device__ __half __hmax_nan(const __half a, const __half b)
-
Calculates
half
maximum of two input values, NaNs pass through.Calculates
half
max(a
,b
) defined as (a
>b
) ?a
:b
.If either of inputs is NaN, then canonical NaN is returned.
If values of both inputs are 0.0, then +0.0 > -0.0
- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
half
-
__host__ __device__ __half __hmin(const __half a, const __half b)
-
Calculates
half
minimum of two input values.Calculates
half
min(a
,b
) defined as (a
<b
) ?a
:b
.If either of inputs is NaN, the other input is returned.
If both inputs are NaNs, then canonical NaN is returned.
If values of both inputs are 0.0, then +0.0 > -0.0
- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
half
-
__host__ __device__ __half __hmin_nan(const __half a, const __half b)
-
Calculates
half
minimum of two input values, NaNs pass through.Calculates
half
min(a
,b
) defined as (a
<b
) ?a
:b
.If either of inputs is NaN, then canonical NaN is returned.
If values of both inputs are 0.0, then +0.0 > -0.0
- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
half
-
__host__ __device__ bool __hne(const __half a, const __half b)
-
Performs
half
not-equal comparison.Performs
half
not-equal comparison of inputsa
andb
. NaN inputs generate false results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of not-equal comparison of
a
andb
.
-
__host__ __device__ bool __hneu(const __half a, const __half b)
-
Performs
half
unordered not-equal comparison.Performs
half
not-equal comparison of inputsa
andb
. NaN inputs generate true results.- Parameters
-
a – [in] - half. Is only being read.
b – [in] - half. Is only being read.
- Returns
-
bool
The boolean result of unordered not-equal comparison of
a
andb
.
-
__host__ __device__ bool operator!=(const __half &lh, const __half &rh)
-
Performs
half
unordered compare not-equal operation.See also
-
__host__ __device__ bool operator<(const __half &lh, const __half &rh)
-
Performs
half
ordered less-than compare operation.See also
-
__host__ __device__ bool operator<=(const __half &lh, const __half &rh)
-
Performs
half
ordered less-or-equal compare operation.See also
-
__host__ __device__ bool operator==(const __half &lh, const __half &rh)
-
Performs
half
ordered compare equal operation.See also
-
__host__ __device__ bool operator>(const __half &lh, const __half &rh)
-
Performs
half
ordered greater-than compare operation.See also