Sun WorkShop(TM) 6 Fortran 95 Interval Arithmetic README
Updated 2000/04/04

This document contains last minute information about Fortran 95 Interval Arithmetic.

To view the text version of this document, type the following at a command prompt:

`   example% more /opt/SUNWspro/READMEs/interval_arithmetic`
To access the HTML version of this document, point your Netscape(TM) Communicator 4 or compatible browser to:

• Sun WorkShop 6 Release Notes -- Describes installation-related and late-breaking information about this Sun WorkShop 6 release. Information in the release notes overrides information in all readme files.
• About Sun WorkShop 6 Documentation -- Describes the documentation available with this Sun WorkShop release and how to access it.
• What's New in Sun WorkShop 6 -- Describes the new features in this release.
These documents are accessible in HTML by pointing your browser to file:/opt/SUNWspro/docs/index.html. If your Sun WorkShop software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.

## Introduction

Support for intrinsic INTERVAL data types is a new feature in the Sun WorkShop 6 Fortran 95 compiler. Two new compiler flags, -xia and -xinterval, tell the compiler to recognize interval-specific language extensions and to generate executable interval code.

## What Is Interval Arithmetic?

Interval arithmetic is used to evaluate arithmetic expressions over sets of numbers contained in intervals. An interval is the set of all real numbers between and including the lower and upper bound of the interval. Any interval arithmetic result is a new interval that is guaranteed to contain the set of all possible resulting values.

With Sun WorkShop 6 Fortran 95, it is a simple matter to write interval programs to compute rigorous bounds on the value of arithmetic expressions:

• Declare variables to be type INTERVAL
• Write normal Fortran code using the intrinsic INTERVAL functions and operators, relational operators, and format edit descriptors.
• Compile the code using the -xia command-line option.
• To achieve the best results, use existing interval algorithms that compute narrow width interval results. Devising algorithms to compute narrow interval results is the topic of interval analysis. See "Where Can I Get More Information?" for information on interval algorithms .

## Why is Interval Arithmetic Important?

Interval arithmetic is important for the following reasons:

• Interval arithmetic can be used to perform machine computations with guaranteed bounds on errors from all sources, including input data errors, machine rounding errors, and their interactions.
• Interval algorithms can be developed that solve nonlinear problems, such as the solution to nonlinear systems of equations and nonlinear programming.
• As intervals become more widely used, libraries of interval solvers will be used routinely to compute sharp interval solutions to linear and nonlinear problems, while taking into account all sources of error. With these libraries, scientists, engineers, and developers of commercial applications will be able to write programs to solve problems that are currently out of reach.

Additional sources of interval information can be viewed at:

`http://www.sun.com/forte/fortran/interval`
This web site contains links to the following:
• A detailed bibliography
• An interval FAQ for f95
• Instructions for subscribing to an email list for discussing interval arithmetic issues
• Instructions for reporting a suspected interval error
• Information on interval code development
• Information on past cooperative research

• ## Problems and Workarounds

The following software bugs could not be fixed in time for this release. (Check Hot News for Sun WorkShop 6 (http://www.sun.com/workshop/users/ws.html) for updated information):

### -xia and -xinterval Can Only be Used With -fsimple=0 and -fns=no

-xinterval={widestneed|strict} and -xia={widestneed|strict} command line options cannot be used with either -fsimple or -fns options set to any value other than -fsimple=0 and -fns=no.  This restriction is not always enforced when the -xia option is used in combination with other options (for example -fast) that can set either -fsimple or -fns. For this reason, specify the -xia option last on the command line.