Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

zungl2 (3p)

Name

zungl2 - torization determined by zgelqf (unblocked algorithm)

Synopsis

SUBROUTINE ZUNGL2(M, N, K, A, LDA, TAU, WORK, INFO)

DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
INTEGER M, N, K, LDA, INFO

SUBROUTINE ZUNGL2_64(M, N, K, A, LDA, TAU, WORK, INFO)

DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
INTEGER*8 M, N, K, LDA, INFO




F95 INTERFACE
SUBROUTINE UNGL2(M, N, K, A, LDA, TAU, WORK, INFO)

COMPLEX(8), DIMENSION(:) :: TAU, WORK
COMPLEX(8), DIMENSION(:,:) :: A
INTEGER :: M, N, K, LDA, INFO

SUBROUTINE UNGL2_64(M, N, K, A, LDA, TAU, WORK, INFO)

COMPLEX(8), DIMENSION(:) :: TAU, WORK
COMPLEX(8), DIMENSION(:,:) :: A
INTEGER(8) :: M, N, K, LDA, INFO




C INTERFACE
#include <sunperf.h>

void zungl2(int m, int n, int k, doublecomplex *a, int lda,  doublecom-
plex *tau, int *info);

void zungl2_64(long m, long n, long k, doublecomplex *a, long lda, dou-
blecomplex *tau, long *info);

Description

Oracle Solaris Studio Performance Library                           zungl2(3P)



NAME
       zungl2  -  generate all or part of the unitary matrix Q from an LQ fac-
       torization determined by zgelqf (unblocked algorithm)


SYNOPSIS
       SUBROUTINE ZUNGL2(M, N, K, A, LDA, TAU, WORK, INFO)

       DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
       INTEGER M, N, K, LDA, INFO

       SUBROUTINE ZUNGL2_64(M, N, K, A, LDA, TAU, WORK, INFO)

       DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
       INTEGER*8 M, N, K, LDA, INFO




   F95 INTERFACE
       SUBROUTINE UNGL2(M, N, K, A, LDA, TAU, WORK, INFO)

       COMPLEX(8), DIMENSION(:) :: TAU, WORK
       COMPLEX(8), DIMENSION(:,:) :: A
       INTEGER :: M, N, K, LDA, INFO

       SUBROUTINE UNGL2_64(M, N, K, A, LDA, TAU, WORK, INFO)

       COMPLEX(8), DIMENSION(:) :: TAU, WORK
       COMPLEX(8), DIMENSION(:,:) :: A
       INTEGER(8) :: M, N, K, LDA, INFO




   C INTERFACE
       #include <sunperf.h>

       void zungl2(int m, int n, int k, doublecomplex *a, int lda,  doublecom-
                 plex *tau, int *info);

       void zungl2_64(long m, long n, long k, doublecomplex *a, long lda, dou-
                 blecomplex *tau, long *info);



PURPOSE
       zungl2 generates an M-by-N complex  matrix  Q  with  orthonormal  rows,
       which  is  defined  as  the  first  M rows of a product of K elementary
       reflectors of order N

             Q  =  H(K)**H . . . H(2)**H * H(1)**H

       as returned by ZGELQF.


ARGUMENTS
       M (input) The number of rows of the matrix Q. M >= 0.


       N (input) The number of columns of the matrix Q. N >= M.


       K (input) The number of elementary reflectors whose product defines the
                 matrix Q. M >= K >= 0.


       A (input/output)
                 On  entry, the i-th row must contain the vector which defines
                 the elementary reflector H(i), for i = 1,2,...,k, as returned
                 by  ZGELQF  in  the first k rows of its array argument A.  On
                 exit, the m by n matrix Q.


       LDA (input)
                 The first dimension of the array A. LDA >= max(1,M).


       TAU (input)
                 TAU(i) must contain  the  scalar  factor  of  the  elementary
                 reflector H(i), as returned by ZGELQF.


       WORK (workspace)
                 dimension(M)

       INFO (output)
                 = 0: successful exit;
                 < 0: if INFO = -i, the i-th argument has an illegal value.




                                  7 Nov 2015                        zungl2(3P)