NAME

cgeqp3 - compute a QR factorization with column pivoting of a matrix A


SYNOPSIS

  SUBROUTINE CGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, RWORK, 
 *      INFO)
  COMPLEX A(LDA,*), TAU(*), WORK(*)
  INTEGER M, N, LDA, LWORK, INFO
  INTEGER JPVT(*)
  REAL RWORK(*)
  SUBROUTINE CGEQP3_64( M, N, A, LDA, JPVT, TAU, WORK, LWORK, RWORK, 
 *      INFO)
  COMPLEX A(LDA,*), TAU(*), WORK(*)
  INTEGER*8 M, N, LDA, LWORK, INFO
  INTEGER*8 JPVT(*)
  REAL RWORK(*)

F95 INTERFACE

  SUBROUTINE GEQP3( [M], [N], A, [LDA], JPVT, TAU, [WORK], [LWORK], 
 *       [RWORK], [INFO])
  COMPLEX, DIMENSION(:) :: TAU, WORK
  COMPLEX, DIMENSION(:,:) :: A
  INTEGER :: M, N, LDA, LWORK, INFO
  INTEGER, DIMENSION(:) :: JPVT
  REAL, DIMENSION(:) :: RWORK
  SUBROUTINE GEQP3_64( [M], [N], A, [LDA], JPVT, TAU, [WORK], [LWORK], 
 *       [RWORK], [INFO])
  COMPLEX, DIMENSION(:) :: TAU, WORK
  COMPLEX, DIMENSION(:,:) :: A
  INTEGER(8) :: M, N, LDA, LWORK, INFO
  INTEGER(8), DIMENSION(:) :: JPVT
  REAL, DIMENSION(:) :: RWORK

C INTERFACE

#include <sunperf.h>

void cgeqp3(int m, int n, complex *a, int lda, int *jpvt, complex *tau, int *info);

void cgeqp3_64(long m, long n, complex *a, long lda, long *jpvt, complex *tau, long *info);


PURPOSE

cgeqp3 computes a QR factorization with column pivoting of a matrix A: A*P = Q*R using Level 3 BLAS.


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 real/complex scalar, and v is a real/complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i).

Based on contributions by

  G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
  X. Sun, Computer Science Dept., Duke University, USA