Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

?orbdb5/?unbdb5

Orthogonalizes a column vector with respect to the orthonormal basis matrix.

Syntax

call sorbdb5( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info )

call dorbdb5( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info )

call cunbdb5( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info )

call zunbdb5( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info )

Include Files

  • mkl.fi, mkl_lapack.f90

Description

The ?orbdb5/?unbdb5 routines orthogonalize the column vector

with respect to the columns of

The columns of Q must be orthonormal.

If the projection is zero according to Kahan's "twice is enough" criterion, then some other vector from the orthogonal complement is returned. This vector is chosen in an arbitrary but deterministic way.

Input Parameters

m1

INTEGER

The dimension of x1 and the number of rows in q1. 0 m1.

m2

INTEGER

The dimension of x2 and the number of rows in q2. 0 m2.

n

INTEGER

The number of columns in q1 and q2. 0 n.

x1

REAL for sordb5

DOUBLE PRECISION for dordb5

COMPLEX for cundb5

COMPLEX*16 for zundb5

Array of size m1.

The top part of the vector to be orthogonalized.

incx1

INTEGER

Increment for entries of x1.

x2

REAL for sordb5

DOUBLE PRECISION for dordb5

COMPLEX for cundb5

COMPLEX*16 for zundb5

Array of size m2.

The bottom part of the vector to be orthogonalized.

incx2

INTEGER

Increment for entries of x2.

q1

REAL for sordb5

DOUBLE PRECISION for dordb5

COMPLEX for cundb5

COMPLEX*16 for zundb5

Array of size (ldq1, n).

The top part of the orthonormal basis matrix.

ldq1

INTEGER

The leading dimension of q1. ldq1m1.

q2

REAL for sordb5

DOUBLE PRECISION for dordb5

COMPLEX for cundb5

COMPLEX*16 for zundb5

Array of size (ldq2, n).

The bottom part of the orthonormal basis matrix.

ldq2

INTEGER

The leading dimension of q2. ldq2m2.

work

REAL for sordb5

DOUBLE PRECISION for dordb5

COMPLEX for cundb5

COMPLEX*16 for zundb5

Workspace array of size lwork.

lwork

INTEGER

The size of the array work. lworkn.

Output Parameters

x1

The top part of the projected vector.

x2

The bottom part of the projected vector.

info

INTEGER.

= 0: successful exit

< 0: if info = -i, the i-th argument has an illegal value.

See Also