---
name: "cgqrts.f"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/cgqrts.f"
---

# cgqrts.f(3)

## NAME

TESTING/EIG/cgqrts.f

## SYNOPSIS

### Functions/Subroutines

subroutine **cgqrts** (n, m, p, a, af, q, r, lda, taua, b, bf, z, t, bwk, ldb, taub, work, lwork, rwork, result)\
 **CGQRTS**

## Function/Subroutine Documentation

### subroutine cgqrts (integer n, integer m, integer p, complex, dimension( lda, \* ) a, complex, dimension( lda, \* ) af, complex, dimension( lda, \* ) q, complex, dimension( lda, \* ) r, integer lda, complex, dimension( \* ) taua, complex, dimension( ldb, \* ) b, complex, dimension( ldb, \* ) bf, complex, dimension( ldb, \* ) z, complex, dimension( ldb, \* ) t, complex, dimension( ldb, \* ) bwk, integer ldb, complex, dimension( \* ) taub, complex, dimension( lwork ) work, integer lwork, real, dimension( \* ) rwork, real, dimension( 4 ) result)

**CGQRTS**

**Purpose:**

```
!>
!> CGQRTS tests CGGQRF, which computes the GQR factorization of an
!> N-by-M matrix A and a N-by-P matrix B: A = Q*R and B = Q*T*Z.
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>          The number of rows of the matrices A and B.  N >= 0.
!>
```

*M*

```
!>          M is INTEGER
!>          The number of columns of the matrix A.  M >= 0.
!>
```

*P*

```
!>          P is INTEGER
!>          The number of columns of the matrix B.  P >= 0.
!>
```

*A*

```
!>          A is COMPLEX array, dimension (LDA,M)
!>          The N-by-M matrix A.
!>
```

*AF*

```
!>          AF is COMPLEX array, dimension (LDA,N)
!>          Details of the GQR factorization of A and B, as returned
!>          by CGGQRF, see CGGQRF for further details.
!>
```

*Q*

```
!>          Q is COMPLEX array, dimension (LDA,N)
!>          The M-by-M unitary matrix Q.
!>
```

*R*

```
!>          R is COMPLEX array, dimension (LDA,MAX(M,N))
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the arrays A, AF, R and Q.
!>          LDA >= max(M,N).
!>
```

*TAUA*

```
!>          TAUA is COMPLEX array, dimension (min(M,N))
!>          The scalar factors of the elementary reflectors, as returned
!>          by CGGQRF.
!>
```

*B*

```
!>          B is COMPLEX array, dimension (LDB,P)
!>          On entry, the N-by-P matrix A.
!>
```

*BF*

```
!>          BF is COMPLEX array, dimension (LDB,N)
!>          Details of the GQR factorization of A and B, as returned
!>          by CGGQRF, see CGGQRF for further details.
!>
```

*Z*

```
!>          Z is COMPLEX array, dimension (LDB,P)
!>          The P-by-P unitary matrix Z.
!>
```

*T*

```
!>          T is COMPLEX array, dimension (LDB,max(P,N))
!>
```

*BWK*

```
!>          BWK is COMPLEX array, dimension (LDB,N)
!>
```

*LDB*

```
!>          LDB is INTEGER
!>          The leading dimension of the arrays B, BF, Z and T.
!>          LDB >= max(P,N).
!>
```

*TAUB*

```
!>          TAUB is COMPLEX array, dimension (min(P,N))
!>          The scalar factors of the elementary reflectors, as returned
!>          by SGGRQF.
!>
```

*WORK*

```
!>          WORK is COMPLEX array, dimension (LWORK)
!>
```

*LWORK*

```
!>          LWORK is INTEGER
!>          The dimension of the array WORK, LWORK >= max(N,M,P)**2.
!>
```

*RWORK*

```
!>          RWORK is REAL array, dimension (max(N,M,P))
!>
```

*RESULT*

```
!>          RESULT is REAL array, dimension (4)
!>          The test ratios:
!>            RESULT(1) = norm( R - Q'*A ) / ( MAX(M,N)*norm(A)*ULP)
!>            RESULT(2) = norm( T*Z - Q'*B ) / (MAX(P,N)*norm(B)*ULP)
!>            RESULT(3) = norm( I - Q'*Q ) / ( M*ULP )
!>            RESULT(4) = norm( I - Z'*Z ) / ( P*ULP )
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **174** of file **cgqrts.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
