zlasyf - compute a partial factorization of a complex symmetric matrix using the Bunch-Kaufman diagonal pivoting method
SUBROUTINE ZLASYF(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO) CHARACTER*1 UPLO INTEGER INFO, KB, LDA, LDW, N, NB INTEGER IPIV(*) DOUBLE COMPLEX A(LDA,*), W(LDW,*) SUBROUTINE ZLASYF_64(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO) CHARACTER*1 UPLO INTEGER*8 INFO, KB, LDA, LDW, N, NB INTEGER*8 IPIV(*) DOUBLE COMPLEX A(LDA,*), W(LDW,*) F95 INTERFACE SUBROUTINE LASYF(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO) INTEGER :: N, NB, KB, LDA, LDW, INFO CHARACTER(LEN=1) :: UPLO INTEGER, DIMENSION(:) :: IPIV COMPLEX(8), DIMENSION(:,:) :: A, W SUBROUTINE LASYF_64(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO) INTEGER(8) :: N, NB, KB, LDA, LDW, INFO CHARACTER(LEN=1) :: UPLO INTEGER(8), DIMENSION(:) :: IPIV COMPLEX(8), DIMENSION(:,:) :: A, W C INTERFACE #include <sunperf.h> void zlasyf (char uplo, int n, int nb, int *kb, doublecomplex *a, int lda, int *ipiv, int ldw, int *info); void zlasyf_64 (char uplo, long n, long nb, long *kb, doublecomplex *a, long lda, long *ipiv, long ldw, long *info);
Oracle Solaris Studio Performance Library                           zlasyf(3P)
NAME
       zlasyf  - compute a partial factorization of a complex symmetric matrix
       using the Bunch-Kaufman diagonal pivoting method
SYNOPSIS
       SUBROUTINE ZLASYF(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
       CHARACTER*1 UPLO
       INTEGER INFO, KB, LDA, LDW, N, NB
       INTEGER IPIV(*)
       DOUBLE COMPLEX A(LDA,*), W(LDW,*)
       SUBROUTINE ZLASYF_64(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
       CHARACTER*1 UPLO
       INTEGER*8 INFO, KB, LDA, LDW, N, NB
       INTEGER*8 IPIV(*)
       DOUBLE COMPLEX A(LDA,*), W(LDW,*)
   F95 INTERFACE
       SUBROUTINE LASYF(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
       INTEGER :: N, NB, KB, LDA, LDW, INFO
       CHARACTER(LEN=1) :: UPLO
       INTEGER, DIMENSION(:) :: IPIV
       COMPLEX(8), DIMENSION(:,:) :: A, W
       SUBROUTINE LASYF_64(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
       INTEGER(8) :: N, NB, KB, LDA, LDW, INFO
       CHARACTER(LEN=1) :: UPLO
       INTEGER(8), DIMENSION(:) :: IPIV
       COMPLEX(8), DIMENSION(:,:) :: A, W
   C INTERFACE
       #include <sunperf.h>
       void zlasyf (char uplo, int n, int nb, int *kb, doublecomplex  *a,  int
                 lda, int *ipiv, int ldw, int *info);
       void zlasyf_64 (char uplo, long n, long nb, long *kb, doublecomplex *a,
                 long lda, long *ipiv, long ldw, long *info);
PURPOSE
       zlasyf computes a partial factorization of a complex symmetric matrix A
       using  the  Bunch-Kaufman diagonal pivoting method. The partial factor-
       ization has the form:
       A  =  ( I  U12 ) ( A11  0  ) (  I       0    )  if UPLO = 'U', or:
             ( 0  U22 ) (  0   D  ) ( U12**T U22**T )
       A  =  ( L11  0 ) ( D    0  ) ( L11**T L21**T )  if UPLO = 'L'
             ( L21  I ) ( 0   A22 ) (  0       I    )
       where the order of D is at most NB. The actual order is returned in the
       argument KB, and is either NB or NB-1, or N if N <= NB.  Note that U**T
       denotes the transpose of U.
       ZLASYF is an auxiliary routine called by ZSYTRF. It uses  blocked  code
       (calling  Level  3 BLAS) to update the submatrix A11 (if UPLO = 'U') or
       A22 (if UPLO = 'L').
ARGUMENTS
       UPLO (input)
                 UPLO is CHARACTER*1
                 Specifies whether the upper or lower triangular part  of  the
                 symmetric matrix A is stored:
                 = 'U':  Upper triangular;
                 = 'L':  Lower triangular.
       N (input)
                 N is INTEGER
                 The order of the matrix A. N >= 0.
       NB (input)
                 NB is INTEGER
                 The  maximum number of columns of the matrix A that should be
                 factored. NB should be at least 2 to allow for  2-by-2  pivot
                 blocks.
       KB (output)
                 KB is INTEGER
                 The number of columns of A that were actually factored.
                 KB is either NB-1 or NB, or N if N <= NB.
       A (input/output)
                 A is COMPLEX*16 array, dimension (LDA,N)
                 On entry, the symmetric matrix A.
                 If  UPLO = 'U', the leading n-by-n upper triangular part of A
                 contains the upper triangular part of the matrix A,  and  the
                 strictly lower triangular part of A is not referenced.
                 If  UPLO = 'L', the leading n-by-n lower triangular part of A
                 contains the lower triangular part of the matrix A,  and  the
                 strictly upper triangular part of A is not referenced.
                 On exit, A contains details of the partial factorization.
       LDA (input)
                 LDA is INTEGER
                 The leading dimension of the array A. LDA >= max(1,N).
       IPIV (output)
                 IPIV is INTEGER array, dimension (N)
                 Details of the interchanges and the block structure of D.
                 If UPLO = 'U':
                 Only the last KB elements of IPIV are set.
                 If  IPIV(k)  >  0,  then  rows and columns k and IPIV(k) were
                 interchanged and D(k,k) is a 1-by-1 diagonal block.
                 If IPIV(k) = IPIV(k-1) < 0, then rows  and  columns  k-1  and
                 -IPIV(k)  were  interchanged  and  D(k-1:k,k-1:k) is a 2-by-2
                 diagonal block.
                 If UPLO = 'L':
                 Only the first KB elements of IPIV are set.
                 If IPIV(k) > 0, then rows and  columns  k  and  IPIV(k)  were
                 interchanged and D(k,k) is a 1-by-1 diagonal block.
                 If  IPIV(k)  =  IPIV(k+1)  < 0, then rows and columns k+1 and
                 -IPIV(k) were interchanged and  D(k:k+1,k:k+1)  is  a  2-by-2
                 diagonal block.
       W (output)
                 W is COMPLEX*16 array, dimension (LDW,NB)
       LDW (input)
                 LDW is INTEGER
                 The leading dimension of the array W. LDW >= max(1,N).
       INFO (output)
                 INFO is INTEGER
                 = 0: successful exit;
                 >  0:  if INFO = k, D(k,k) is exactly zero. The factorization
                 has been completed,  but  the  block  diagonal  matrix  D  is
                 exactly singular.
                                  7 Nov 2015                        zlasyf(3P)