unbdb6#

Functions

void cunbdb6(
    const INT           m1,
    const INT           m2,
    const INT           n,
          c64* restrict X1,
    const INT           incx1,
          c64* restrict X2,
    const INT           incx2,
    const c64* restrict Q1,
    const INT           ldq1,
    const c64* restrict Q2,
    const INT           ldq2,
          c64* restrict work,
    const INT           lwork,
          INT*          info
);
void cunbdb6(const INT m1, const INT m2, const INT n, c64 *restrict X1, const INT incx1, c64 *restrict X2, const INT incx2, const c64 *restrict Q1, const INT ldq1, const c64 *restrict Q2, const INT ldq2, c64 *restrict work, const INT lwork, INT *info)#

CUNBDB6 orthogonalizes the column vector X = [ X1 ] [ X2 ] with respect to the columns of Q = [ Q1 ] .

[ Q2 ] The columns of Q must be orthonormal. The orthogonalized vector will be zero if and only if it lies entirely in the range of Q.

The projection is computed with at most two iterations of the classical Gram-Schmidt algorithm, see

  • L. Giraud, J. Langou, M. Rozloznik. “On the round-off error

    analysis of the Gram-Schmidt algorithm with reorthogonalization.”

    1. CERFACS Technical Report No. TR/PA/02/33.

Parameters

in
m1

The dimension of X1 and the number of rows in Q1. 0 <= M1.

in
m2

The dimension of X2 and the number of rows in Q2. 0 <= M2.

in
n

The number of columns in Q1 and Q2. 0 <= N.

inout
X1

Complex array, dimension (M1). On entry, the top part of the vector to be orthogonalized. On exit, the top part of the projected vector.

in
incx1

Increment for entries of X1.

inout
X2

Complex array, dimension (M2). On entry, the bottom part of the vector to be orthogonalized. On exit, the bottom part of the projected vector.

in
incx2

Increment for entries of X2.

in
Q1

Complex array, dimension (LDQ1, N). The top part of the orthonormal basis matrix.

in
ldq1

The leading dimension of Q1. LDQ1 >= M1.

in
Q2

Complex array, dimension (LDQ2, N). The bottom part of the orthonormal basis matrix.

in
ldq2

The leading dimension of Q2. LDQ2 >= M2.

out
work

Complex array, dimension (LWORK).

in
lwork

The dimension of the array WORK. LWORK >= N.

out
info

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

Functions

void zunbdb6(
    const INT            m1,
    const INT            m2,
    const INT            n,
          c128* restrict X1,
    const INT            incx1,
          c128* restrict X2,
    const INT            incx2,
    const c128* restrict Q1,
    const INT            ldq1,
    const c128* restrict Q2,
    const INT            ldq2,
          c128* restrict work,
    const INT            lwork,
          INT*           info
);
void zunbdb6(const INT m1, const INT m2, const INT n, c128 *restrict X1, const INT incx1, c128 *restrict X2, const INT incx2, const c128 *restrict Q1, const INT ldq1, const c128 *restrict Q2, const INT ldq2, c128 *restrict work, const INT lwork, INT *info)#

ZUNBDB6 orthogonalizes the column vector X = [ X1 ] [ X2 ] with respect to the columns of Q = [ Q1 ] .

[ Q2 ] The columns of Q must be orthonormal. The orthogonalized vector will be zero if and only if it lies entirely in the range of Q.

The projection is computed with at most two iterations of the classical Gram-Schmidt algorithm, see

  • L. Giraud, J. Langou, M. Rozloznik. “On the round-off error

    analysis of the Gram-Schmidt algorithm with reorthogonalization.”

    1. CERFACS Technical Report No. TR/PA/02/33.

Parameters

in
m1

The dimension of X1 and the number of rows in Q1. 0 <= M1.

in
m2

The dimension of X2 and the number of rows in Q2. 0 <= M2.

in
n

The number of columns in Q1 and Q2. 0 <= N.

inout
X1

Complex array, dimension (M1). On entry, the top part of the vector to be orthogonalized. On exit, the top part of the projected vector.

in
incx1

Increment for entries of X1.

inout
X2

Complex array, dimension (M2). On entry, the bottom part of the vector to be orthogonalized. On exit, the bottom part of the projected vector.

in
incx2

Increment for entries of X2.

in
Q1

Complex array, dimension (LDQ1, N). The top part of the orthonormal basis matrix.

in
ldq1

The leading dimension of Q1. LDQ1 >= M1.

in
Q2

Complex array, dimension (LDQ2, N). The bottom part of the orthonormal basis matrix.

in
ldq2

The leading dimension of Q2. LDQ2 >= M2.

out
work

Complex array, dimension (LWORK).

in
lwork

The dimension of the array WORK. LWORK >= N.

out
info

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