Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

sgeqrf (3p)

Name

sgeqrf - N matrix A

Synopsis

SUBROUTINE SGEQRF(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

INTEGER M, N, LDA, LDWORK, INFO
REAL A(LDA,*), TAU(*), WORK(*)

SUBROUTINE SGEQRF_64(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

INTEGER*8 M, N, LDA, LDWORK, INFO
REAL A(LDA,*), TAU(*), WORK(*)




F95 INTERFACE
SUBROUTINE GEQRF(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

INTEGER :: M, N, LDA, LDWORK, INFO
REAL, DIMENSION(:) :: TAU, WORK
REAL, DIMENSION(:,:) :: A

SUBROUTINE GEQRF_64(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

INTEGER(8) :: M, N, LDA, LDWORK, INFO
REAL, DIMENSION(:) :: TAU, WORK
REAL, DIMENSION(:,:) :: A




C INTERFACE
#include <sunperf.h>

void sgeqrf(int m, int n, float *a, int lda, float *tau, int *info);

void  sgeqrf_64(long  m,  long  n, float *a, long lda, float *tau, long
*info);

Description

Oracle Solaris Studio Performance Library                           sgeqrf(3P)



NAME
       sgeqrf - compute a QR factorization of a real M-by-N matrix A


SYNOPSIS
       SUBROUTINE SGEQRF(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

       INTEGER M, N, LDA, LDWORK, INFO
       REAL A(LDA,*), TAU(*), WORK(*)

       SUBROUTINE SGEQRF_64(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

       INTEGER*8 M, N, LDA, LDWORK, INFO
       REAL A(LDA,*), TAU(*), WORK(*)




   F95 INTERFACE
       SUBROUTINE GEQRF(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

       INTEGER :: M, N, LDA, LDWORK, INFO
       REAL, DIMENSION(:) :: TAU, WORK
       REAL, DIMENSION(:,:) :: A

       SUBROUTINE GEQRF_64(M, N, A, LDA, TAU, WORK, LDWORK, INFO)

       INTEGER(8) :: M, N, LDA, LDWORK, INFO
       REAL, DIMENSION(:) :: TAU, WORK
       REAL, DIMENSION(:,:) :: A




   C INTERFACE
       #include <sunperf.h>

       void sgeqrf(int m, int n, float *a, int lda, float *tau, int *info);

       void  sgeqrf_64(long  m,  long  n, float *a, long lda, float *tau, long
                 *info);



PURPOSE
       sgeqrf computes a QR factorization of a real M-by-N matrix A: A =  Q  *
       R.


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


       N (input) The number of columns of the matrix A.  N >= 0.


       A (input/output)
                 On  entry, the M-by-N matrix A.  On exit, the elements on and
                 above the diagonal of the  array  contain  the  min(M,N)-by-N
                 upper trapezoidal matrix R (R is upper triangular if m >= n);
                 the elements below the diagonal, with the array  TAU,  repre-
                 sent the orthogonal matrix Q as a product of min(m,n) elemen-
                 tary reflectors (see Further Details).


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


       TAU (output)
                 The scalar factors of the elementary reflectors (see  Further
                 Details).


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


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

                 If  LDWORK  = -1, then a workspace query is assumed; the rou-
                 tine 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 LDWORK is issued by XERBLA.


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

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 scalar, and v is a real 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).




                                  7 Nov 2015                        sgeqrf(3P)