# TQL1 3 "31 August 1983" "Version 1.00"

## Table of contents

- NAME
- SYNOPSIS
- DESCRIPTION
- AUTHORS

# NAME

tql1 - Double-precision symmetric tridiagonal matrix eigenvalues

# SYNOPSIS

Fortran (77, 90, 95, HPF):

> f77 [ flags ] file(s) ... -L/usr/local/lib -lgjl

> >     SUBROUTINE tql1(n,d,e,ierr)
> >     DOUBLE PRECISION    d(*),        e(*)
> >     INTEGER             ierr,        n

C (K&R, 89, 99), C++ (98):

> cc [ flags ] -I/usr/local/include file(s) ... -L/usr/local/lib -lgjl
> Use

> > #include <gjl.h>

> to get this prototype:

> > void tql1(const fortran_integer * n_, fortran_double_precision d_[], fortran_double_precision e_[], fortran_integer * ierr_);

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: 31-Aug-1983

# DESCRIPTION

Given a symmetric tridiagonal matrix of order n stored with its diagonal in d(1..n), and its subdiagonal in e(2..n), with e(1) arbitrary, use the QL method to find the eigenvalues.

On return, the original contents of d(*) and e(*) will have been destroyed, and d(*) will contain the eigenvalues in ascending order.

The error indicator, ierr, is normally set to zero on return. However, if an error exit is made, ierr is set to a positive value, and then the eigenvalues are correct and ordered for indices 1, 2, ..., ierr-1, but may not be the smallest eigenvalues.

This routine is a translation of the Algol procedure tql1() from ``The QR and QL Algorithms for Symmetric Matrices'', Numerische Mathematik 11, 293--306 (1968), by H. J. Bowdler, R. S. Martin, C. Reinsch and J. H. Wilkinson. That article was republished in the Handbook for Automatic Computation, Vol. II, Linear Algebra, 227--240 (1971), eds. J. H. Wilkinson and C. Reinsch, Springer-Verlag, ISBN 3-540-05414-6.

tql1() is part of the EISPACK-1 and EISPACK-2 libraries.

# 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