CUDA Math API (PDF) - v10.1.168 (older) - Last updated April 24, 2019 - Send Feedback

## 1.1.3. Half Comparison Functions

## [Half Precision Intrinsics]

To use these functions include the header file `cuda_fp16.h` in your program.

### Functions

__device__ ​ bool __heq ( const __half a, const __half b ) throw ( )
  Performs `half` if-equal comparison.
__device__ ​ bool __hequ ( const __half a, const __half b ) throw ( )
  Performs `half` unordered if-equal comparison.
__device__ ​ bool __hge ( const __half a, const __half b ) throw ( )
  Performs `half` greater-equal comparison.
__device__ ​ bool __hgeu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered greater-equal comparison.
__device__ ​ bool __hgt ( const __half a, const __half b ) throw ( )
  Performs `half` greater-than comparison.
__device__ ​ bool __hgtu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered greater-than comparison.
__device__ ​ int __hisinf ( const __half a ) throw ( )
  Checks if the input `half` number is infinite.
__device__ ​ bool __hisnan ( const __half a ) throw ( )
  Determine whether `half` argument is a NaN.
__device__ ​ bool __hle ( const __half a, const __half b ) throw ( )
  Performs `half` less-equal comparison.
__device__ ​ bool __hleu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered less-equal comparison.
__device__ ​ bool __hlt ( const __half a, const __half b ) throw ( )
  Performs `half` less-than comparison.
__device__ ​ bool __hltu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered less-than comparison.
__device__ ​ bool __hne ( const __half a, const __half b ) throw ( )
  Performs `half` not-equal comparison.
__device__ ​ bool __hneu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered not-equal comparison.

### Functions

__device__ ​ bool __heq ( const __half a, const __half b ) throw ( )
  Performs `half` if-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of if-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` if-equal comparison of inputs `a` and `b`. NaN inputs generate false results. TBR

__device__ ​ bool __hequ ( const __half a, const __half b ) throw ( )
  Performs `half` unordered if-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of unordered if-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` if-equal comparison of inputs `a` and `b`. NaN inputs generate true results. TBR

__device__ ​ bool __hge ( const __half a, const __half b ) throw ( )
  Performs `half` greater-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of greater-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` greater-equal comparison of inputs `a` and `b`. NaN inputs generate false results. TBR

__device__ ​ bool __hgeu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered greater-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of unordered greater-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` greater-equal comparison of inputs `a` and `b`. NaN inputs generate true results. TBR

__device__ ​ bool __hgt ( const __half a, const __half b ) throw ( )
  Performs `half` greater-than comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of greater-than comparison of `a` and `b`.

  ###### Description

  Performs `half` greater-than comparison of inputs `a` and `b`. NaN inputs generate false results. TBR

__device__ ​ bool __hgtu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered greater-than comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of unordered greater-than comparison of `a` and `b`.

  ###### Description

  Performs `half` greater-than comparison of inputs `a` and `b`. NaN inputs generate true results. TBR

__device__ ​ int __hisinf ( const __half a ) throw ( )
  Checks if the input `half` number is infinite.

  ###### Parameters

  `a`
    - half. Is only being read.

  ###### Returns

  int

  - -1

    iff `a` is equal to negative infinity,

  - 1

    iff `a` is equal to positive infinity,

  - 0

    otherwise.

  ###### Description

  Checks if the input `half` number `a` is infinite. TBR

__device__ ​ bool __hisnan ( const __half a ) throw ( )
  Determine whether `half` argument is a NaN.

  ###### Parameters

  `a`
    - half. Is only being read.

  ###### Returns

  bool

  - true

    iff argument is NaN.

  ###### Description

  Determine whether `half` value `a` is a NaN. TBR

__device__ ​ bool __hle ( const __half a, const __half b ) throw ( )
  Performs `half` less-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of less-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` less-equal comparison of inputs `a` and `b`. NaN inputs generate false results. TBR

__device__ ​ bool __hleu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered less-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of unordered less-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` less-equal comparison of inputs `a` and `b`. NaN inputs generate true results. TBR

__device__ ​ bool __hlt ( const __half a, const __half b ) throw ( )
  Performs `half` less-than comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of less-than comparison of `a` and `b`.

  ###### Description

  Performs `half` less-than comparison of inputs `a` and `b`. NaN inputs generate false results. TBR

__device__ ​ bool __hltu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered less-than comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of unordered less-than comparison of `a` and `b`.

  ###### Description

  Performs `half` less-than comparison of inputs `a` and `b`. NaN inputs generate true results. TBR

__device__ ​ bool __hne ( const __half a, const __half b ) throw ( )
  Performs `half` not-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of not-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` not-equal comparison of inputs `a` and `b`. NaN inputs generate false results. TBR

__device__ ​ bool __hneu ( const __half a, const __half b ) throw ( )
  Performs `half` unordered not-equal comparison.

  ###### Parameters

  `a`
    - half. Is only being read.
  `b`
    - half. Is only being read.

  ###### Returns

  bool

  - The

    boolean result of unordered not-equal comparison of `a` and `b`.

  ###### Description

  Performs `half` not-equal comparison of inputs `a` and `b`. NaN inputs generate true results. TBR