NAME

zgerqf - compute an RQ factorization of a complex M-by-N matrix A


SYNOPSIS

  SUBROUTINE ZGERQF( M, N, A, LDA, TAU, WORK, LDWORK, INFO)
  DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
  INTEGER M, N, LDA, LDWORK, INFO
  SUBROUTINE ZGERQF_64( M, N, A, LDA, TAU, WORK, LDWORK, INFO)
  DOUBLE COMPLEX A(LDA,*), TAU(*), WORK(*)
  INTEGER*8 M, N, LDA, LDWORK, INFO

F95 INTERFACE

  SUBROUTINE GERQF( [M], [N], A, [LDA], TAU, [WORK], [LDWORK], [INFO])
  COMPLEX(8), DIMENSION(:) :: TAU, WORK
  COMPLEX(8), DIMENSION(:,:) :: A
  INTEGER :: M, N, LDA, LDWORK, INFO
  SUBROUTINE GERQF_64( [M], [N], A, [LDA], TAU, [WORK], [LDWORK], 
 *       [INFO])
  COMPLEX(8), DIMENSION(:) :: TAU, WORK
  COMPLEX(8), DIMENSION(:,:) :: A
  INTEGER(8) :: M, N, LDA, LDWORK, INFO

C INTERFACE

#include <sunperf.h>

void zgerqf(int m, int n, doublecomplex *a, int lda, doublecomplex *tau, int *info);

void zgerqf_64(long m, long n, doublecomplex *a, long lda, doublecomplex *tau, long *info);


PURPOSE

zgerqf computes an RQ factorization of a complex M-by-N matrix A: A = R * Q.


ARGUMENTS


FURTHER DETAILS

The matrix Q is represented as a product of elementary reflectors

   Q  = H(1)' H(2)' . . . H(k)', where k  = min(m,n).

Each H(i) has the form

   H(i)  = I - tau * v * v'

where tau is a complex scalar, and v is a complex vector with v(n-k+i+1:n) = 0 and v(n-k+i) = 1; conjg(v(1:n-k+i-1)) is stored on exit in A(m-k+i,1:n-k+i-1), and tau in TAU(i).