VMS Help
CXX, Qualifiers, /IEEE_MODE

 *Conan The Librarian

       /IEEE_MODE
       /IEEE_MODE=option
       /IEEE_MODE=FAST (D) (Alpha only)
       /IEEE_MODE=DENORM_RESULTS (D) (I64 only)

    Selects the IEEE floating-point mode to be used if the
    /FLOAT=IEEE_FLOAT qualifier is specified. The options are:

    Option         Usage

    FAST           During program execution, only finite values
                   (no infinities, NaNs, or denorms) are created.
                   Underflows and denormal values are flushed to
                   zero. Exceptional conditions, such as floating-
                   point overflow, divide-by-zero, or use of an IEEE
                   exceptional operand are fatal.
    UNDERFLOW_     Generate infinities and NaNs. Flush denormalized
    TO_ZERO        results and underflow to zero without exceptions.
    DENORM_        Same as the UNDERFLOW_TO_ZERO option, except that
    RESULTS        denorms are generated.
    INEXACT        Same as the DENORM_RESULTS option, except that
                   inexact values are trapped. This is the slowest
                   mode, and is not appropriate for any sort of
                   general-purpose computations.

    On Alpha systems, the default is /IEEE_MODE=FAST.

    On I64 systems, the default is /IEEE_MODE=DENORM_RESULTS.

    The INFINITY and NAN macros defined in <math.h> are available to
    programs compiled with /FLOAT=IEEE and /IEEE_MODE={anything other
    than FAST}.

    On Alpha sytems, the /IEEE_MODE qualifier generally has its
    greatest effect on the generated code of a compilation. When
    calls are made between functions compiled with different /IEEE_
    MODE qualifiers, each function produces the /IEEE_MODE behavior
    with which it was compiled.

    On I64 systems, the /IEEE_MODE qualifier primarily affects
    only the setting of a hardware register at program startup.
    In general, the /IEEE_MODE behavior for a given function is
    controlled by the /IEEE_MODE option specified on the compilation
    that produced the main program: the startup code for the main
    program sets the hardware register according the command-line
    qualifiers used to compile the main program.

    When applied to a compilation that does not contain a main
    program, the /IEEE_MODE qualifier does have some effect: it might
    affect the evaluation of floating-point constant expressions, and
    it is used to set the EXCEPTION_MODE used by the math library for
    calls from that compilation. But the qualifier has no effect on
    the exceptional behavior of floating-point calculations generated
    as inline code for that compilation. Therefore, if floating-point
    exceptional behavior is important to an application, all of its
    compilations, including the one containing the main program,
    should be compiled with the same /IEEE_MODE setting.

    Even on Alpha systems, the particular setting of /IEEE_
    MODE=UNDERFLOW_TO_ZERO has this characteristic: its primary
    effect requires the setting of a runtime status register, and
    so it needs to be specified on the compilation containing the
    main program in order to be effective in other compilations.

    Also see the /FLOAT qualifier.
  Close     Help