C H A P T E R 7 |
Interval BLAS Routines |
This chapter provides a brief overview of an interval Fortran 95 version of the basic linear algebra subroutine (BLAS) library. The interval BLAS version is referred to as the IBLAS library. For a more complete description of the IBLAS library routines, see the white paper Interval Version of the Basic Linear Algebra Subprograms (IBLAS).
For information on the Fortran 95 interfaces and types of arguments used in each IBLAS routine, see the section 3P man pages for the individual routines. For example, to display the man page for the SFFTC routine, type man -s 3P sfftc. Routine names must be lowercase.
For more information on the non-interval version of the BLAS library, see the document Basic Linear Algebra Subprogram Technical (BLAST) Forum Standard, available at http://www.netlib.org/blas/blast-forum/.
Intervals have a dual identity as intervals of numbers and as sets of numbers. The empty interval contains no members and is the same as the empty set in the theory of sets. In computer input and output, the empty interval is denoted [empty]. For more information on intrinsic Fortran 95 compiler support for interval data types, see the Fortran 95 Interval Arithmetic Programming Reference and the interval white papers referenced therein.
This section summarizes IBLAS naming conventions derived from the BLAS specification. Language Bindings contains a list of IBLAS routine names organized into the following groups. For the corresponding detailed Fortran language bindings, see the IBLAS man pages or the IBLAS white paper.
As in the BLAS, mathematical operations and routines are grouped into:
New interval-specific routines are grouped into:
Except that the suffix _I or _i is added, IBLAS routines are named the same as the corresponding BLAS routines described in (ref BLAST Standard). IBLAS routine names have the same prefixes as the BLAS routines. Routines with prefixes identify the matrix type. TABLE 7-1 lists the IBLAS prefixes and matrix types.
As in the BLAS, sparse or complex interval matrices are not treated.
A number of interval-specific, set, and utility IBLAS routines are given new BLAS-style names. See TABLE 7-9 through TABLE 7-12.
The IBLAS Fortran bindings are implemented in a module. Its interface block defines the default interval data type to be TYPE(INTERVAL).
Interval BLAS routines are consistent with regard to:
Error handling is described in the Basic Linear Algebra Subprogram Technical (BLAST) Forum Standard and in the IBLAS white paper.
Numeric error handling is not required because exceptions are not possible in the closed interval system implemented in the Sun Studio f95 compiler. Argument inconsistency errors are handled as described in IBLAS white paper, the IBLAS man pages, and the BLAST standard.
In general, actual argument shape inconsistencies cause IBLAS routines to return the largest impossible value of -1 for integer indices, a default NaN for REALvalues, and the interval =[ -,+] for computed intervals. The normal BLAS error handling mechanism is also used to communicate actual-parameter errors.
Each interface is summarized as a SUBROUTINE or FUNCTION statement, in which all the required and optional arguments appear. Optional arguments are grouped in square brackets after the required arguments. Binding format is illustrated with the Scaled Vector Sum Update (AXPBY_I) routine.
SUBROUTINE axpby_i( x, y [, alpha] [,beta] )
TYPE(INTERVAL) (<wp>), INTENT (IN) :: x (:)
TYPE(INTERVAL) (<wp>), INTENT (INOUT) :: y (:)
TYPE(INTERVAL) (<wp>), INTENT (IN), OPTIONAL :: alpha, beta
Because generic interfaces are used, the working precision, denoted <wp> is implicitly defined by the following actual arguments:
<wp> ::= KIND(4) | KIND(8) | KIND(16)
Variables in IBLAS routines are INTEGER, REAL, or TYPE(INTERVAL). See the IBLAS man pages or the IBLAS white pager for individual routine bindings.
This section is a brief overview of the IBLAS Fortran routine names and their function. With the one exception of the CANCEL routines, which perform the same operation as the .DSUB. operator in f95, vector and set reductions and operations are the same as in the BLAS. The CANCEL routines and all the vector and matrix set operations and utilities are interval-specific. For interval-specific routines, the f95 equivalent scalar routines are also shown in TABLE 7-3 and TABLE 7-9 through TABLE 7-12. For clarity, lowercase and uppercase Fortran variable names are used to distinguish point from interval types. See TABLE A-11 for an alphabetical list of all the IBLAS routines.
^{Note: Prefix depends upon matrix type and applies to all routine names in this table.} |
---|
^{Note: Prefix depends upon matrix type and applies to all routine names in this table.} |
---|
The following white paper is available online. See the Interval Arithmetic readme for the location of this file.
"Interval Version of the Basic Linear Algebra Subprograms Standard (IBLAS)," derived by G.W. Walster from the draft INTERVAL BLAS Chapter 5 prepared by Chenyi Hu, et. al., to be included in the Basic Linear Algebra Subprogram Technical (BLAST) Forum Standard.
Copyright © 2004, Sun Microsystems, Inc. All Rights Reserved.