Contents


NAME

     zungtr - generate  a  complex  unitary  matrix  Q  which  is
     defined as the product of n-1 elementary reflectors of order
     N, as returned by CHETRD

SYNOPSIS

     SUBROUTINE ZUNGTR(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)

     CHARACTER * 1 UPLO
     DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
     INTEGER N, LDA, LWORK, INFO

     SUBROUTINE ZUNGTR_64(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)

     CHARACTER * 1 UPLO
     DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
     INTEGER*8 N, LDA, LWORK, INFO

  F95 INTERFACE
     SUBROUTINE UNGTR(UPLO, [N], A, [LDA], TAU, [WORK], [LWORK], [INFO])

     CHARACTER(LEN=1) :: UPLO
     COMPLEX(8), DIMENSION(:) :: TAU, WORK
     COMPLEX(8), DIMENSION(:,:) :: A
     INTEGER :: N, LDA, LWORK, INFO

     SUBROUTINE UNGTR_64(UPLO, [N], A, [LDA], TAU, [WORK], [LWORK], [INFO])

     CHARACTER(LEN=1) :: UPLO
     COMPLEX(8), DIMENSION(:) :: TAU, WORK
     COMPLEX(8), DIMENSION(:,:) :: A
     INTEGER(8) :: N, LDA, LWORK, INFO

  C INTERFACE
     #include <sunperf.h>

     void zungtr(char uplo, int n,  doublecomplex  *a,  int  lda,
               doublecomplex *tau, int *info);

     void zungtr_64(char uplo, long  n,  doublecomplex  *a,  long
               lda, doublecomplex *tau, long *info);

PURPOSE

     zungtr generates a complex unitary matrix Q which is defined
     as  the  product of n-1 elementary reflectors of order N, as
     returned by CHETRD:
     if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),

     if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).

ARGUMENTS

     UPLO (input)
               = 'U': Upper triangle  of  A  contains  elementary
               reflectors from CHETRD; = 'L': Lower triangle of A
               contains elementary reflectors from CHETRD.

     N (input) The order of the matrix Q. N >= 0.

     A (input/output)
               On entry, the vectors which define the  elementary
               reflectors,  as  returned by CHETRD.  On exit, the
               N-by-N unitary matrix Q.

     LDA (input)
               The leading dimension of the array A. LDA >= N.

     TAU (input)
               TAU(i) must contain the scalar factor of the  ele-
               mentary reflector H(i), as returned by CHETRD.

     WORK (workspace)
               On exit, if INFO = 0, WORK(1) returns the  optimal
               LWORK.

     LWORK (input)
               The dimension of the array  WORK.  LWORK  >=  N-1.
               For  optimum  performance LWORK >= (N-1)*NB, where
               NB is the optimal blocksize.

               If LWORK = -1, then a workspace query is  assumed;
               the  routine  only  calculates the optimal size of
               the WORK array, returns this value  as  the  first
               entry  of  the  WORK  array,  and no error message
               related to LWORK is issued by XERBLA.

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value