zsyconv - versa
SUBROUTINE ZSYCONV(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) CHARACTER*1 UPLO, WAY INTEGER INFO, LDA, N INTEGER IPIV(*) DOUBLE COMPLEX A(LDA,*), WORK(*) SUBROUTINE ZSYCONV_64(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) CHARACTER*1 UPLO, WAY INTEGER*8 INFO, LDA, N INTEGER*8 IPIV(*) DOUBLE COMPLEX A(LDA,*), WORK(*) F95 INTERFACE SUBROUTINE SYCONV(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) INTEGER :: N, LDA, INFO CHARACTER(LEN=1) :: UPLO, WAY INTEGER, DIMENSION(:) :: IPIV COMPLEX(8), DIMENSION(:,:) :: A COMPLEX(8), DIMENSION(:) :: WORK SUBROUTINE SYCONV_64(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) INTEGER(8) :: N, LDA, INFO CHARACTER(LEN=1) :: UPLO, WAY INTEGER(8), DIMENSION(:) :: IPIV COMPLEX(8), DIMENSION(:,:) :: A COMPLEX(8), DIMENSION(:) :: WORK C INTERFACE #include <sunperf.h> void zsyconv (char uplo, char way, int n, doublecomplex *a, int lda, int *ipiv, int *info); void zsyconv_64 (char uplo, char way, long n, doublecomplex *a, long lda, long *ipiv, long *info);
Oracle Solaris Studio Performance Library zsyconv(3P) NAME zsyconv - converts A given by ZHETRF into L and D or vice-versa SYNOPSIS SUBROUTINE ZSYCONV(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) CHARACTER*1 UPLO, WAY INTEGER INFO, LDA, N INTEGER IPIV(*) DOUBLE COMPLEX A(LDA,*), WORK(*) SUBROUTINE ZSYCONV_64(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) CHARACTER*1 UPLO, WAY INTEGER*8 INFO, LDA, N INTEGER*8 IPIV(*) DOUBLE COMPLEX A(LDA,*), WORK(*) F95 INTERFACE SUBROUTINE SYCONV(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) INTEGER :: N, LDA, INFO CHARACTER(LEN=1) :: UPLO, WAY INTEGER, DIMENSION(:) :: IPIV COMPLEX(8), DIMENSION(:,:) :: A COMPLEX(8), DIMENSION(:) :: WORK SUBROUTINE SYCONV_64(UPLO, WAY, N, A, LDA, IPIV, WORK, INFO) INTEGER(8) :: N, LDA, INFO CHARACTER(LEN=1) :: UPLO, WAY INTEGER(8), DIMENSION(:) :: IPIV COMPLEX(8), DIMENSION(:,:) :: A COMPLEX(8), DIMENSION(:) :: WORK C INTERFACE #include <sunperf.h> void zsyconv (char uplo, char way, int n, doublecomplex *a, int lda, int *ipiv, int *info); void zsyconv_64 (char uplo, char way, long n, doublecomplex *a, long lda, long *ipiv, long *info); PURPOSE zsyconv converts A given by ZHETRF into L and D or vice-versa. Get nondiagonal elements of D (returned in workspace) and apply or reverse permutation done in TRF. ARGUMENTS UPLO (input) UPLO is CHARACTER*1 Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. = 'U': Upper triangular, form is A=U*D*U**T; = 'L': Lower triangular, form is A=L*D*L**T. WAY (input) WAY is CHARACTER*1 = 'C': Convert = 'R': Revert N (input) N is INTEGER The order of the matrix A. N >= 0. A (input/output) A is COMPLEX*16 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZSYTRF. LDA (input) LDA is INTEGER The leading dimension of the array A. LDA >= max(1,N). IPIV (input) IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by ZSYTRF. WORK (output) WORK is COMPLEX*16 array, dimension (N) INFO (output) INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value 7 Nov 2015 zsyconv(3P)