---
name: "zunbdb5.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/zunbdb5.f"
---

# zunbdb5.f(3)

## NAME

SRC/zunbdb5.f

## SYNOPSIS

### Functions/Subroutines

subroutine **zunbdb5** (m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)\
 **ZUNBDB5**

## Function/Subroutine Documentation

### subroutine zunbdb5 (integer m1, integer m2, integer n, complex\*16, dimension(\*) x1, integer incx1, complex\*16, dimension(\*) x2, integer incx2, complex\*16, dimension(ldq1,\*) q1, integer ldq1, complex\*16, dimension(ldq2,\*) q2, integer ldq2, complex\*16, dimension(\*) work, integer lwork, integer info)

**ZUNBDB5**

**Purpose:**

```
!>
!> ZUNBDB5 orthogonalizes the column vector
!>      X = [ X1 ]
!>          [ X2 ]
!> with respect to the columns of
!>      Q = [ Q1 ] .
!>          [ Q2 ]
!> The columns of Q must be orthonormal.
!>
!> If the projection is zero according to Kahan's
!> criterion, then some other vector from the orthogonal complement
!> is returned. This vector is chosen in an arbitrary but deterministic
!> way.
!>
!>
```

**Parameters**

*M1*

```
!>          M1 is INTEGER
!>           The dimension of X1 and the number of rows in Q1. 0 <= M1.
!>
```

*M2*

```
!>          M2 is INTEGER
!>           The dimension of X2 and the number of rows in Q2. 0 <= M2.
!>
```

*N*

```
!>          N is INTEGER
!>           The number of columns in Q1 and Q2. 0 <= N.
!>
```

*X1*

```
!>          X1 is COMPLEX*16 array, dimension (M1)
!>           On entry, the top part of the vector to be orthogonalized.
!>           On exit, the top part of the projected vector.
!>
```

*INCX1*

```
!>          INCX1 is INTEGER
!>           Increment for entries of X1.
!>
```

*X2*

```
!>          X2 is COMPLEX*16 array, dimension (M2)
!>           On entry, the bottom part of the vector to be
!>           orthogonalized. On exit, the bottom part of the projected
!>           vector.
!>
```

*INCX2*

```
!>          INCX2 is INTEGER
!>           Increment for entries of X2.
!>
```

*Q1*

```
!>          Q1 is COMPLEX*16 array, dimension (LDQ1, N)
!>           The top part of the orthonormal basis matrix.
!>
```

*LDQ1*

```
!>          LDQ1 is INTEGER
!>           The leading dimension of Q1. LDQ1 >= M1.
!>
```

*Q2*

```
!>          Q2 is COMPLEX*16 array, dimension (LDQ2, N)
!>           The bottom part of the orthonormal basis matrix.
!>
```

*LDQ2*

```
!>          LDQ2 is INTEGER
!>           The leading dimension of Q2. LDQ2 >= M2.
!>
```

*WORK*

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

*LWORK*

```
!>          LWORK is INTEGER
!>           The dimension of the array WORK. LWORK >= N.
!>
```

*INFO*

```
!>          INFO is INTEGER
!>           = 0:  successful exit.
!>           < 0:  if INFO = -i, the i-th argument had an illegal value.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **154** of file **zunbdb5.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
