Contents
dpbcon - estimate the reciprocal of the condition number (in
the 1-norm) of a real symmetric positive definite band
matrix using the Cholesky factorization A = U**T*U or A =
L*L**T computed by DPBTRF
SUBROUTINE DPBCON(UPLO, N, KD, A, LDA, ANORM, RCOND, WORK, WORK2,
INFO)
CHARACTER * 1 UPLO
INTEGER N, KD, LDA, INFO
INTEGER WORK2(*)
DOUBLE PRECISION ANORM, RCOND
DOUBLE PRECISION A(LDA,*), WORK(*)
SUBROUTINE DPBCON_64(UPLO, N, KD, A, LDA, ANORM, RCOND, WORK,
WORK2, INFO)
CHARACTER * 1 UPLO
INTEGER*8 N, KD, LDA, INFO
INTEGER*8 WORK2(*)
DOUBLE PRECISION ANORM, RCOND
DOUBLE PRECISION A(LDA,*), WORK(*)
F95 INTERFACE
SUBROUTINE PBCON(UPLO, [N], KD, A, [LDA], ANORM, RCOND, [WORK],
[WORK2], [INFO])
CHARACTER(LEN=1) :: UPLO
INTEGER :: N, KD, LDA, INFO
INTEGER, DIMENSION(:) :: WORK2
REAL(8) :: ANORM, RCOND
REAL(8), DIMENSION(:) :: WORK
REAL(8), DIMENSION(:,:) :: A
SUBROUTINE PBCON_64(UPLO, [N], KD, A, [LDA], ANORM, RCOND, [WORK],
[WORK2], [INFO])
CHARACTER(LEN=1) :: UPLO
INTEGER(8) :: N, KD, LDA, INFO
INTEGER(8), DIMENSION(:) :: WORK2
REAL(8) :: ANORM, RCOND
REAL(8), DIMENSION(:) :: WORK
REAL(8), DIMENSION(:,:) :: A
C INTERFACE
#include <sunperf.h>
void dpbcon(char uplo, int n, int kd, double *a, int lda,
double anorm, double *rcond, int *info);
void dpbcon_64(char uplo, long n, long kd, double *a, long
lda, double anorm, double *rcond, long *info);
dpbcon estimates the reciprocal of the condition number (in
the 1-norm) of a real symmetric positive definite band
matrix using the Cholesky factorization A = U**T*U or A =
L*L**T computed by DPBTRF.
An estimate is obtained for norm(inv(A)), and the reciprocal
of the condition number is computed as RCOND = 1 / (ANORM *
norm(inv(A))).
UPLO (input)
= 'U': Upper triangular factor stored in A;
= 'L': Lower triangular factor stored in A.
N (input) The order of the matrix A. N >= 0.
KD (input)
The number of superdiagonals of the matrix A if
UPLO = 'U', or the number of subdiagonals if UPLO
= 'L'. KD >= 0.
A (input) The triangular factor U or L from the Cholesky
factorization A = U**T*U or A = L*L**T of the band
matrix A, stored in the first KD+1 rows of the
array. The j-th column of U or L is stored in the
j-th column of the array A as follows: if UPLO
='U', A(kd+1+i-j,j) = U(i,j) for max(1,j-
kd)<=i<=j; if UPLO ='L', A(1+i-j,j) = L(i,j)
for j<=i<=min(n,j+kd).
LDA (input)
The leading dimension of the array A. LDA >=
KD+1.
ANORM (input)
The 1-norm (or infinity-norm) of the symmetric
band matrix A.
RCOND (output)
The reciprocal of the condition number of the
matrix A, computed as RCOND = 1/(ANORM * AINVNM),
where AINVNM is an estimate of the 1-norm of
inv(A) computed in this routine.
WORK (workspace)
dimension(3*N)
WORK2 (workspace)
dimension(N)
INFO (output)
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille-
gal value