PYTHAG 3 "01 May 2000" "Version 1.00"

Table of contents


NAME

pythag - Double-precision Euclidean 2-norm

SYNOPSIS

Fortran (77, 90, 95, HPF):
f77 [ flags ] file(s) ... -L/usr/local/lib -lgjl
DOUBLE PRECISION FUNCTION pythag(a,b)
DOUBLE PRECISION   a,           b
C (K&R, 89, 99), C++ (98):
cc [ flags ] -I/usr/local/include file(s) ... -L/usr/local/lib -lgjl
Use
#include <gampsi.h>
to get this prototype:
fortran_double_precision pythag(const fortran_double_precision * a_, const fortran_double_precision * b_);

NB: The definition of C/C++ data types fortran_ xxx, and the mapping of Fortran external names to C/C++ external names, is handled by the C/C++ header file. That way, the same function or subroutine name can be used in C, C++, and Fortran code, independent of compiler conventions for mangling of external names in these programming languages.

Last code modification: 01-May-2000


DESCRIPTION

Find dsqrt(a**2 + b**2) without overflow or destructive underflow, and handle Infinity and NaN arguments correctly.

The original version of this function (from EISPACK-2) due to

Cleve Moler and Donald Morrison, ``Replacing Square Roots by
Pythagorean Sums'', IBM J. Research and Development, 27,
577--581 (1983)

Augustin A. Dubrulle, ``A Class of Numerical Methods for the
Computation of Pythagorean Sums'', IBM J. Research and
Development, 27, 582--589 (1983)

did not correctly handle Infinity and NaN arguments: it went into an infinite loop. This version is more robust, with two extra tests to detect such arguments.


AUTHORS

The algorithms and code are described in detail in the paper
Algorithm xxx: Quadruple-Precision Gamma(x) and psi(x) Functions for Real Arguments
in ACM Transactions on Mathematical Software, Volume ??, Number ??, Pages ????--???? and ????--????, 2001, by
Nelson H. F. Beebe
Center for Scientific Computing
University of Utah
Department of Mathematics, 110 LCB
155 S 1400 E RM 233
Salt Lake City, UT 84112-0090
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org
WWW URL: http://www.math.utah.edu/~beebe
and
James S. Ball
University of Utah
Department of Physics
Salt Lake City, UT 84112-0830
USA
Tel: +1 801 581 8397
FAX: +1 801 581 6256
Email: ball@physics.utah.edu
WWW URL: http://www.physics.utah.edu/people/faculty/ball.html