Introduction

All LAPACK driver subroutines (including expert drivers) and some LAPACK computationals have both generic LAPACK90 interfaces and generic LAPACK77 interfaces. The remaining computationals have only generic LAPACK77 interfaces. In both types of interfaces no distinction is made between single and double precision or between real and complex data types. The use of the LAPACK90 (LAPACK77) interface requires the user to specify the F90_LAPACK (F77_LAPACK) module.

For example, the GESV driver subroutine, which solves a general system of linear equations, can be called in the following ways:

• CALL LA_GESV( A, B, IPIV=ipiv, INFO=info ) !  F90_LAPACK is needed
• CALL LA_GESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO ) !  F77_LAPACK is needed.
The documentation for LAPACK90 see below while for the LAPACK77 see the LAPACK Users' Guide. Click here if the LAPACK90 Library is not installed on your computer.

The LAPACK90 library and documentation will successively be updated. Questions/comments should be directed to: jerzy.wasniewski@uni-c.dk.

Driver Routines for Linear Equations

• CALL LA_GESV ( A, B, IPIV=ipiv, INFO=info )
Solves a general system of linear equations AX = B.
• CALL LA_GBSV ( AB, B, KL=kl, IPIV=ipiv, INFO=info )
Solves a general band system of linear equations AX = B.
• CALL LA_GTSV ( DL, D, DU, B, INFO=info )
Solves a general tridiagonal system of linear equations AX = B.
• CALL LA_POSV ( A, B, UPLOi=uplo, INFO=info )
Solves a symmetric/Hermitian positive definite system of linear equations AX = B.
• CALL LA_PPSV ( AP, B, UPLO=uplo, INFO=info )
Solves a symmetric/Hermitian positive definite (packed storage) system of linear equations AX = B.
• CALL LA_PBSV ( AB, B, UPLO=uplo, INFO=info )
Solves a symmetric/Hermitian positive definite band system of linear equations AX = B.
• CALL LA_PTSV ( D, E, B, INFO=info )
Solves a symmetric/Hermitian positive definite tridiagonal system of linear equations AX = B.
• CALL LA_SYSV / LA_HESV ( A, B, UPLO=uplo, IPIV=ipiv, INFO=infp )
Solves a symmetric/Hermitian/complex indefinite system of linear equations AX = B.
• CALL LA_SPSV /LA_HPSV ( AP, B, UPLO=uplo, IPIV=ipiv, INFO=info )
Solves a symmetric/Hermitian/complex indefinite (packed storage) system of linear equations AX = B.

Expert Driver Routines for Linear Equations

• CALL LA_GESVX ( A, B, X, AF=af, IPIV=ipiv, FACT=fact, TRANS=trans, &
EQUED=equed, R=r, C=c, FERR=ferr, BERR=berr, &
RCOND=rcond, RPVGRW=rpvgrw, INFO=info )
Solves a general system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_GBSVX ( AB, B, X, KL=kl, ABF=abf, IPIV=ipiv, FACT=fact, &
TRANS=trans, EQUED=equed, R=r, C=c, FERR=ferr, &
BERR=berr, RCOND=rcond, RPVGRW=rpvgrv, INFO=info)
Solves a general band system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_GTSVX ( DL, D, DU, B, X=x, DLF=dlf, DF=df, DUF=duf, DU2=du2, &
IPIV=ipiv, FACT=fact, TRANS=trans, FERR=ferr, BERR=berr, &
RCOND=rcond, INFO=info)
Solves a general tridiagonal system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_POSVX ( A, B, X, UPLO=uplo, AF=af, FACT=fact, EQUED=equed, &
S=s, FERR=ferr, BERR=berr, RCOND=rcond, INFO=info )
Solves a symmetric/Hermitian positive definite system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_PPSVX ( AP, B, X, UPLO=uplo, AFP=afp, FACT=fact, EQUED=equed, &
S=s, FERR=ferr, BERR=berr, RCOND=rcond, INFO=info )
Solves a symmetric/Hermitian positive definite (packed storage) system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_PBSVX (AB, B, X, UPLO=uplo, AFB=afb, FACT=fact, EQUED=equed, &
S=s, FERR=ferr, BERR=berr, RCOND=rcond, INFO=info )
Solves a symmetric/Hermitian positive definite band system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_PTSVX ( D, E, B, X, DF=df, EF=ef, FACT=fact, FERR=ferr, BERR=berr, &
RCOND=rcond, INFO=info )
Solves a symmetric/Hermitian positive definite tridiagonal system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_SYSVX / LA_HESVX ( A, B, X, UPLO=uplo, AF=af, IPIV=ipiv, &
FACT=fact, FERR=ferr, BERR=berr, RCOND=rcond, INFO=infp )
Solves a symmetric/Hermitian/complex indefinite system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.
• CALL LA_SPSVX / LA_HPSVX ( AP, B, X, UPLO=uplo, AFP=afp, IPIV=ipiv, &
FACT=fact, FERR=ferr, BERR=berr, RCOND=rcond, INFO=info )
Solves a symmetric/Hermitian/complex indefinite (packed storage) system of linear equations AX = B. Error bounds on the solution and a condition estimate are also provided.

Driver Routines for Linear Least Squares Problems

• CALL LA_GELS ( A, B, TRANS=trans, INFO=info )
Solves over-determined or under-determined linear systems or its transpose, using a QR or LQ factorization of A.
• CALL LA_GELSX ( A, B, RANK=rank, JPVT=jpvt, RCOND=rcond, INFO=info )
Computes the minimum-norm solution to a linear least squares problem, using a complete orthogonal factorization of A.
• CALL LA_GELSS ( A, B, RANK=rank, S=s, RCOND=rcond, INFO=info )
Computes the minimum norm solution to a real linear least squares problem, using the singular value decomposition (SVD) of A.

Driver Routines for generalized Linear Least Squares Problems

• CALL LA_GGLSE ( A, B, C, D, X, INFO=info )
Solves the linear equality-constrained least squares (LSE) problem.
• CALL LA_GGGLM ( A, B, D, X, Y, INFO=info )
Solves a general Gauss-Markov linear model (GLM) problem.

Driver Routines for Standard Eigenvalue and Singular Value Problems

• CALL LA_SYEV / LA_HEEV ( A, W, JOBZ=jobz, UPLO=uplo, INFO=info )
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric or Hermitian matrix A.
• CALL LA_SPEV / LA_HPEV ( AP, W, UPLO=uplo, Z=z, INFO=info )
Computes all the eigenvalues and, optionally, eigenvectors of a real symmetric / hermitian matrix A in packed storage.
• CALL LA_SBEV / LA_HBEV ( AB, W, UPLO=uplo, Z=z, INFO=info )
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric / Hermitian band matrix A.
• CALL LA_STEV ( D, E, Z=z, INFO=info )
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix A.
• CALL LA_GEES A, <w>, VS=vs, SELECT=select, SDIM=sdim, INFO=info )
Computes for a non-symmetric matrix A, the eigenvalues, the Schur form T, and, optionally, the matrix of Schur vectors Z. <w> is either WR, WI or W.
• CALL LA_GEEV ( A, <w>, VL=vl, VR=vr, INFO=info )
Computes for a non-symmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors. <w> is either WR, WI or W.
• CALL LA_GESVD ( A, S, U=u, VT=vt, WW=ww, JOB=job, INFO=job )
Computes the singular value decomposition (SVD) of matrix A, optionally computing the left and/or right singular vectors.

Divide and Conquer Driver Routines for Standard Eigenvalue Problems

• CALL LA_SYEVD / LA_HEEVD ( A, W, JOBZ=jobz, UPLO=uplo, INFO=info )
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric or Hermitian matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm.
• CALL LA_SPEVD / LA_HPEVD ( AP, W, UPLO=uplo, Z=z, INFO=info )
Computes all the eigenvalues and, optionally, eigenvectors of a real symmetric / hermitian matrix A in packed storage. If eigenvectors are desired, it uses a divide and conquer algorithm.
• CALL LA_SBEVD / LA_HBEVD ( AB, W, UPLO=uplo, Z=z, INFO=info )
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric / Hermitian band matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm.
• CALL LA_STEVD ( D, E, Z=z, INFO=info )
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm.

Expert Driver Routines for Standard Eigenvalue Problems

• CALL LA_SYEVX / LA_HEEVX ( A, W, UPLO=uplo, VL=vl, VU=vu, &
L=il, IU=iu, M=m, IFAIL=ifail, ABSTOL=abstol, INFO=info )
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric or Hermitian matrix A. Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues.
• CALL LA_SPEVX / LA_HPEVX ( AP, W, UPLO=uplo, Z=z, VL=vl, VU=vu, &
IL=il, IU=iu, M=m, IFAIL=ifail, ABSTOL=abstol, INFO=info )
Computes all the eigenvalues and, optionally, eigenvectors of a real symmetric / hermitian matrix A in packed storage. Eigenvalues/vectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues.
• CALL LA_SBEVX / LA_HBEVX ( AB, W, UPLO=uplo, Z=z, VL=vl, VU=vu, &
IL=il, IU=iu, M=m, IFAIL=ifail, Q=q, ABSTOL=abstol, INFO=info )
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric / Hermitian band matrix A. Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues.
• CALL LA_STEVX ( D, E, W, Z=z, VL=vl, VU=vu, IL=il, IU=iu, M=m, &
IFAIL=ifail, ABSTOL=abstol, INFO=info )
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix A. Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues.
• CALL LA_GEESX (A, <w>, VS=vs, SELECT=select, SDIM=sdim, RCONDE=rconde, &
RCONDV=rcondv, INFO=info )
Computes for a non-symmetric matrix A, the eigenvalues, the Schur form T, and, optionally, the matrix of Schur vectors Z. Optionally, it also orders the eigenvalues on the diagonal of the real Schur form so that selected eigenvalues are at the top left; computes a reciprocal condition number for the average of the selected eigenvalues, and computes a reciprocal condition number for the right invariant subspace corresponding to the selected eigenvalues. <w> is either WR, WI or W.
• CALL LA_GEEVX ( A, <w>, VL=vl, VR=vr, BALANC=balanc, ILO=ilo, IHI=ihi, &
SCALE=scale, ABNRM=abnrm, RCONDE=rconde, &
RCONDV=rcondv, INFO=info )
Computes for a non-symmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors. Optionally also, it computes a balancing transformation to improve the conditioning of the eigenvalues and eigenvectors (ILO, IHI, SCALE, and ABNRM), reciprocal condition numbers for the eigenvalues (RCONDE), and reciprocal condition numbers for the right eigenvectors (RCONDV). <w> is either WR, WI or W.

Driver Routines for Generalized Eigenvalue and Singular Value Problems

• CALL LA_SYGV /LA_HEGV ( A, B, W, ITYPE=itype, JOBZ=jobz, &
UPLO=uplo, INFO=info )
Computes all the eigenvalues, and optionally, the eigenvectors of a real generalized symmetric-definite or complex Hermitian-definite eigenproblem
• CALL LA_SPGV /LA_HPGV ( AP, BP, W, ITYPE=itype, UPLO=uplo, Z=z, &
INFO=info )
Computes all the eigenvalues and, optionally, the eigenvectors of a real generalized symmetric-definite eigenproblem.
• CALL LA_SBGV /LA_HBGV ( AB, BB, W, UPLO=uplo, Z=z, INFO=info )
Computes all the eigenvalues, and optionally, the eigenvectors of a real generalized symmetric-definite banded eigenproblem.
• CALL LA_GEGS ( A, B, <alpha>=alpha, BETA=beta, VSL=vsl, VSR=vsr, &
INFO=info )
Computes for a pair of non-symmetric matrices A, B: the generalized eigenvalues (alphar alpha, beta), the Schur form (A, B), and optionally left and/or right Schur vectors (VSL and VSR). <alpha> ::= ALPHAR, ALPHAI | ALPHA
• CALL LA_GEGV ( A, B, <alpha>=alpha, BETA=beta, VL=vl, VR=vr, INFO=info )
Computes for a pair of non-symmetric matrices A and B, the generalized eigenvalues (alpha, beta), and optionally, the left and/or right generalized eigenvectors.
• CALL LA_GGSVD ( A, B, ALPHA, BETA, K=k, L=l, U=u, V=v, Q=q, INFO=info )
Computes the generalized singular value decomposition.

Jerzy Wasniewski
Sat Aug 23 07:49:21 1997