Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

cungbr (3p)

Name

cungbr - mined by CGEBRD when reducing a complex matrix A to bidiagonal form

Synopsis

SUBROUTINE CUNGBR(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)

CHARACTER*1 VECT
COMPLEX A(LDA,*), TAU(*), WORK(*)
INTEGER M, N, K, LDA, LWORK, INFO

SUBROUTINE CUNGBR_64(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)

CHARACTER*1 VECT
COMPLEX A(LDA,*), TAU(*), WORK(*)
INTEGER*8 M, N, K, LDA, LWORK, INFO




F95 INTERFACE
SUBROUTINE UNGBR(VECT, M, N, K, A, LDA, TAU, WORK, LWORK,
INFO)

CHARACTER(LEN=1) :: VECT
COMPLEX, DIMENSION(:) :: TAU, WORK
COMPLEX, DIMENSION(:,:) :: A
INTEGER :: M, N, K, LDA, LWORK, INFO

SUBROUTINE UNGBR_64(VECT, M, N, K, A, LDA, TAU, WORK, LWORK,
INFO)

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




C INTERFACE
#include <sunperf.h>

void cungbr(char vect, int m, int n, int k, complex *a, int  lda,  com-
plex *tau, int *info);

void cungbr_64(char vect, long m, long n, long k, complex *a, long lda,
complex *tau, long *info);

Description

Oracle Solaris Studio Performance Library                           cungbr(3P)



NAME
       cungbr  - generate one of the complex unitary matrices Q or P**H deter-
       mined by CGEBRD when reducing a complex matrix A to bidiagonal form


SYNOPSIS
       SUBROUTINE CUNGBR(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)

       CHARACTER*1 VECT
       COMPLEX A(LDA,*), TAU(*), WORK(*)
       INTEGER M, N, K, LDA, LWORK, INFO

       SUBROUTINE CUNGBR_64(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)

       CHARACTER*1 VECT
       COMPLEX A(LDA,*), TAU(*), WORK(*)
       INTEGER*8 M, N, K, LDA, LWORK, INFO




   F95 INTERFACE
       SUBROUTINE UNGBR(VECT, M, N, K, A, LDA, TAU, WORK, LWORK,
              INFO)

       CHARACTER(LEN=1) :: VECT
       COMPLEX, DIMENSION(:) :: TAU, WORK
       COMPLEX, DIMENSION(:,:) :: A
       INTEGER :: M, N, K, LDA, LWORK, INFO

       SUBROUTINE UNGBR_64(VECT, M, N, K, A, LDA, TAU, WORK, LWORK,
              INFO)

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




   C INTERFACE
       #include <sunperf.h>

       void cungbr(char vect, int m, int n, int k, complex *a, int  lda,  com-
                 plex *tau, int *info);

       void cungbr_64(char vect, long m, long n, long k, complex *a, long lda,
                 complex *tau, long *info);



PURPOSE
       cungbr generates one of the complex unitary matrices Q or  P**H  deter-
       mined  by CGEBRD when reducing a complex matrix A to bidiagonal form: A
       = Q * B * P**H.  Q and P**H  are  defined  as  products  of  elementary
       reflectors H(i) or G(i) respectively.

       If  VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q is of
       order M:
       if m >= k, Q = H(1) H(2) . . . H(k) and CUNGBR returns the first n col-
       umns of Q, where m >= n >= k;
       if  m < k, Q = H(1) H(2) . . . H(m-1) and CUNGBR returns Q as an M-by-M
       matrix.

       If VECT = 'P', A is assumed to have been a K-by-N matrix, and  P**H  is
       of order N:
       if  k  <  n, P**H = G(k) . . . G(2) G(1) and CUNGBR returns the first m
       rows of P**H, where n >= m >= k;
       if k >= n, P**H = G(n-1) . . . G(2) G(1) and CUNGBR returns P**H as  an
       N-by-N matrix.


ARGUMENTS
       VECT (input)
                 Specifies  whether  the  matrix  Q  or  the  matrix  P**H  is
                 required, as defined in the transformation applied by CGEBRD:
                 = 'Q':  generate Q;
                 = 'P':  generate P**H.


       M (input) The number of rows of the matrix Q or P**H to be returned.  M
                 >= 0.


       N (input) The number of columns of the matrix Q or P**H to be returned.
                 N  >= 0.  If VECT = 'Q', M >= N >= min(M,K); if VECT = 'P', N
                 >= M >= min(N,K).


       K (input) If VECT = 'Q', the number of columns in the  original  M-by-K
                 matrix  reduced by CGEBRD.  If VECT = 'P', the number of rows
                 in the original K-by-N matrix reduced by CGEBRD.  K >= 0.


       A (input/output)
                 On entry, the vectors which define the elementary reflectors,
                 as returned by CGEBRD.  On exit, the M-by-N matrix Q or P**H.


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


       TAU (input)
                 (min(M,K)) if VECT = 'Q' (min(N,K)) if VECT = 'P' TAU(i) must
                 contain the scalar factor of the elementary reflector H(i) or
                 G(i), which determines Q or P**H, as returned  by  CGEBRD  in
                 its array argument TAUQ or TAUP.


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


       LWORK (input)
                 The  dimension  of  the array WORK. LWORK >= max(1,min(M,N)).
                 For optimum performance LWORK >= min(M,N)*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 illegal value




                                  7 Nov 2015                        cungbr(3P)