ieee_features: IEEE feature support module

Table of Contents

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.