# ieee_features: IEEE feature support module

## Table of Contents

- 1 Name
- 2 Usage
- 3 Synopsis
- 4 Derived-Type Description
- 5 Parameter Description
- 6 See Also
- 7 Bugs

## 1 Name

`ieee_features` — Intrinsic module for requesting IEEE feature support

## 2 Usage

USE,INTRINSIC :: IEEE_FEATURES [,ONLY:feature [,feature]...]

This module provides a mechanism to request support for particular IEEE features.

The contents of this module conform to technical report ISO/IEC TR 15580:1998(E).

## 3 Synopsis

Derived Types
  IEEE_FEATURES_TYPE.
Parameters

  IEEE_DATATYPE, IEEE_DENORMAL, IEEE_DIVIDE, IEEE_HALTING, IEEE_INEXACT_FLAG, IEEE_INF, IEEE_INVALID_FLAG, IEEE_NAN, IEEE_ROUNDING, IEEE_SQRT, IEEE_UNDERFLOW_FLAG.

## 4 Derived-Type Description

      TYPE IEEE_FEATURES_TYPE
        PRIVATE
        ...
      END TYPE

This type is the type of the named constants exported by this module. It is provided solely for access to these named constants.

## 5 Parameter Description

Accessing these parameters (on the USE statement) requests support for the specified IEEE features. For example,

      USE,INTRINSIC :: IEEE_FEATURES,ONLY:IEEE_INF,IEEE_NAN

will cause compilation to fail if the requested features (IEEE infinities and NaNs) cannot be supported. Note that a USE statement for IEEE_FEATURES with no ONLY clause will request support for all the possible features.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_DATATYPE

Requests IEEE arithmetic support, returning .TRUE. from IEEE_SUPPORT_DATATYPE(X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_DENORMAL

Requests support for IEEE denormalised numbers, returning .TRUE. from IEEE_SUPPORT_DENORMAL(X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_DIVIDE

Requests support for IEEE division, returning .TRUE. from IEEE_SUPPORT_DIVIDE(X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_HALTING

Requests support for changing the halting mode, return .TRUE. from IEEE_SUPPORT_HALTING for at least one exception flag.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_INEXACT_FLAG

Requests support for the inexact exception, returning .TRUE. from IEEE_SUPPORT_FLAG(IEEE_INEXACT,X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_INF

Requests support for IEEE infinities, returning .TRUE. from IEEE_SUPPORT_INF(X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_INVALID_FLAG

Requests support for the invalid exception, returning .TRUE. from IEEE_SUPPORT_FLAG(IEEE_INVALID,X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_NAN

Requests support for IEEE NaNs (Not-a-Number values), returning .TRUE. from IEEE_SUPPORT_NAN(X) for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_ROUNDING

Requests support for dynamic setting of all IEEE rounding modes, returning .TRUE. from IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) for all rounding modes for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_SQRT

Requests support for IEEE sqrt, returning .TRUE. from IEEE_SUPPORT_SQRT for at least one kind of REAL.

      TYPE(IEEE_FEATURES_TYPE),PARAMETER :: IEEE_UNDERFLOW_FLAG

Requests support for the underflow exception, returning .TRUE. from IEEE_SUPPORT_FLAG(IEEE_UNDERFLOW,X) for at least one kind of REAL.

## 6 See Also

nagfor(1), ieee_arithmetic(3), ieee_exceptions(3), intro(3), nag_modules(3).

## 7 Bugs

Please report any bugs found to ‘support@nag.co.uk’ or ‘support@nag.com’, along with any suggestions for improvements.