dla_syrcond - estimate the Skeel condition number for a symmetric indefinite matrix
DOUBLE PRECISION FUNCTION DLA_SYRCOND(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) CHARACTER*1 UPLO INTEGER N, LDA, LDAF, INFO, CMODE INTEGER IWORK(*), IPIV(*) DOUBLE PRECISION A(LDA,*), AF(LDAF,*), WORK(*), C(*) DOUBLE PRECISION FUNCTION DLA_SYRCOND_64(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) CHARACTER*1 UPLO INTEGER*8 N, LDA, LDAF, INFO, CMODE INTEGER*8 IWORK(*), IPIV(*) DOUBLE PRECISION A(LDA,*), AF(LDAF,*), WORK(*), C(*) F95 INTERFACE REAL(8) FUNCTION LA_SYRCOND(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) INTEGER :: N, LDA, LDAF, CMODE, INFO CHARACTER(LEN=1) :: UPLO INTEGER, DIMENSION(:) :: IWORK REAL(8), DIMENSION(:,:) :: A, AF REAL(8), DIMENSION(:) :: C, WORK REAL(8) FUNCTION LA_SYRCOND_64(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) INTEGER(8) :: N, LDA, LDAF, CMODE, INFO CHARACTER(LEN=1) :: UPLO INTEGER(8), DIMENSION(:) :: IWORK REAL(8), DIMENSION(:,:) :: A, AF REAL(8), DIMENSION(:) :: C, WORK C INTERFACE #include <sunperf.h> double dla_syrcond (char uplo, int n, double *a, int lda, double *af, int ldaf, int cmode, double *c, int *info); double dla_syrcond_64 (char uplo, long n, double *a, long lda, double *af, long ldaf, long cmode, double *c, long *info);
Oracle Solaris Studio Performance Library dla_syrcond(3P) NAME dla_syrcond - estimate the Skeel condition number for a symmetric indefinite matrix SYNOPSIS DOUBLE PRECISION FUNCTION DLA_SYRCOND(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) CHARACTER*1 UPLO INTEGER N, LDA, LDAF, INFO, CMODE INTEGER IWORK(*), IPIV(*) DOUBLE PRECISION A(LDA,*), AF(LDAF,*), WORK(*), C(*) DOUBLE PRECISION FUNCTION DLA_SYRCOND_64(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) CHARACTER*1 UPLO INTEGER*8 N, LDA, LDAF, INFO, CMODE INTEGER*8 IWORK(*), IPIV(*) DOUBLE PRECISION A(LDA,*), AF(LDAF,*), WORK(*), C(*) F95 INTERFACE REAL(8) FUNCTION LA_SYRCOND(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) INTEGER :: N, LDA, LDAF, CMODE, INFO CHARACTER(LEN=1) :: UPLO INTEGER, DIMENSION(:) :: IWORK REAL(8), DIMENSION(:,:) :: A, AF REAL(8), DIMENSION(:) :: C, WORK REAL(8) FUNCTION LA_SYRCOND_64(UPLO, N, A, LDA, AF, LDAF, IPIV, CMODE, C, INFO, WORK, IWORK) INTEGER(8) :: N, LDA, LDAF, CMODE, INFO CHARACTER(LEN=1) :: UPLO INTEGER(8), DIMENSION(:) :: IWORK REAL(8), DIMENSION(:,:) :: A, AF REAL(8), DIMENSION(:) :: C, WORK C INTERFACE #include <sunperf.h> double dla_syrcond (char uplo, int n, double *a, int lda, double *af, int ldaf, int cmode, double *c, int *info); double dla_syrcond_64 (char uplo, long n, double *a, long lda, double *af, long ldaf, long cmode, double *c, long *info); PURPOSE dla_syrcond estimates the Skeel condition number of op(A) * op2(C) where op2 is determined by CMODE as follows CMODE = 1 op2(C) = C CMODE = 0 op2(C) = I CMODE = -1 op2(C) = inv(C) The Skeel condi- tion number cond(A) = norminf( |inv(A)||A| ) is computed by computing scaling factors R such that diag(R)*A*op2(C) is row equilibrated and computing the standard infinity-norm condition number. ARGUMENTS UPLO (input) UPLO is CHARACTER*1 = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored. N (input) N is INTEGER The number of linear equations, i.e., the order of the matrix A. N >= 0. A (input) A is DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N matrix A. LDA (input) LDA is INTEGER The leading dimension of the array A. LDA >= max(1,N). AF (input) AF is DOUBLE PRECISION array, dimension (LDAF,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by DSYTRF. LDAF (input) LDAF is INTEGER The leading dimension of the array AF. LDAF >= max(1,N). IPIV (input) IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by DSYTRF. CMODE (input) CMODE is INTEGER Determines op2(C) in the formula op(A) * op2(C) as follows: CMODE = 1 op2(C) = C CMODE = 0 op2(C) = I CMODE = -1 op2(C) = inv(C) C (input) C is DOUBLE PRECISION array, dimension (N) The vector C in the formula op(A) * op2(C). INFO (output) INFO is INTEGER = 0: Successful exit. i > 0: The ith argument is invalid. WORK (input) WORK is DOUBLE PRECISION array, dimension (3*N). Workspace. IWORK (input) IWORK is INTEGER array, dimension (N). Workspace. 7 Nov 2015 dla_syrcond(3P)