UNBDB5 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void orbdb5(integer *m1, integer *m2, integer *n, T *x1, integer *incx1, T *x2, integer *incx2, T *q1, integer *ldq1, T *q2, integer *ldq2, T *work, integer *lwork, integer *info)#

ORBDB5 orthogonalizes the column vector.

Purpose:

 ORBDB5 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 "twice is enough"
 criterion, then some other vector from the orthogonal complement
 is   returned. This vector is chosen in an arbitrary but deterministic
 way.
Parameters:
  • M1[in]

    M1 is INTEGER

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

  • M2[in]

    M2 is INTEGER

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

  • N[in]

    N is INTEGER

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

  • X1[inout]

    X1 is REAL array, dimension (M1)

    On entry, the top part of the vector to be orthogonalized. On exit, the top part of the projected vector.

  • INCX1[in]

    INCX1 is INTEGER

    Increment for entries of X1.

  • X2[inout]

    X2 is REAL array, dimension (M2)

    On entry, the bottom part of the vector to be orthogonalized. On exit, the bottom part of the projected vector.

  • INCX2[in]

    INCX2 is INTEGER

    Increment for entries of X2.

  • Q1[in]

    Q1 is REAL array, dimension (LDQ1, N)

    The top part of the orthonormal basis matrix.

  • LDQ1[in]

    LDQ1 is INTEGER

    The leading dimension of Q1. LDQ1 >= M1.

  • Q2[in]

    Q2 is REAL array, dimension (LDQ2, N)

    The bottom part of the orthonormal basis matrix.

  • LDQ2[in]

    LDQ2 is INTEGER

    The leading dimension of Q2. LDQ2 >= M2.

  • WORK[out] WORK is REAL array, dimension (LWORK)

  • LWORK[in]

    LWORK is INTEGER

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

  • INFO[out]

    INFO is INTEGER

    = 0: successful exit.

    < 0: if INFO = -i, the i-th argument had an illegal value.
template<typename T>
void unbdb5(integer *m1, integer *m2, integer *n, T *x1, integer *incx1, T *x2, integer *incx2, T *q1, integer *ldq1, T *q2, integer *ldq2, T *work, integer *lwork, integer *info)#