LABRD - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T, typename Ta>
void labrd(integer *m, integer *n, integer *nb, T *a, integer *lda, Ta *d, Ta *e, T *tauq, T *taup, T *x, integer *ldx, T *y, integer *ldy)#

LABRD reduces the first nb rows and columns of a general matrix to a bidiagonal form.

Purpose:

 LABRD reduces the first NB rows and columns of a real general
 m by n matrix A to upper or lower bidiagonal form by an orthogonal
 transformation Q**T * A * P, and   returns the matrices X and Y which
 are needed to apply the transformation to the unreduced part of A.

 If m >= n, A is reduced to upper bidiagonal form; if m < n, to lower
 bidiagonal form.

 This is an auxiliary routine called by GEBRD
Parameters:
  • M[in]

    M is INTEGER

    The number of rows in the matrix A.

  • N[in]

    N is INTEGER

    The number of columns in the matrix A.

  • NB[in]

    NB is INTEGER

    The number of leading rows and columns of A to be reduced.

  • A[inout]

    A is REAL array, dimension (LDA,N)

    On entry, the m by n general matrix to be reduced. On exit, the first NB rows and columns of the matrix are overwritten; the rest of the array is unchanged.

    If m >= n, elements on and below the diagonal in the first NB columns, with the array TAUQ, represent the orthogonal matrix Q as a product of elementary reflectors; and elements above the diagonal in the first NB rows, with the array TAUP, represent the orthogonal matrix P as a product of elementary reflectors.

    If m < n, elements below the diagonal in the first NB columns, with the array TAUQ, represent the orthogonal matrix Q as a product of elementary reflectors, and elements on and above the diagonal in the first NB rows, with the array TAUP, represent the orthogonal matrix P as a product of elementary reflectors.

    See Further Details.
  • LDA[in]

    LDA is INTEGER

    The leading dimension of the array A. LDA >= fla_max(1,M).

  • D[out]

    D is REAL array, dimension (NB)

    The diagonal elements of the first NB rows and columns of the reduced matrix. D(i) = A(i,i).

  • E[out]

    E is REAL array, dimension (NB)

    The off-diagonal elements of the first NB rows and columns of the reduced matrix.

  • TAUQ[out]

    TAUQ is REAL array, dimension (NB)

    The scalar factors of the elementary reflectors which represent the orthogonal matrix Q. See Further Details.

  • TAUP[out]

    TAUP is REAL array, dimension (NB)

    The scalar factors of the elementary reflectors which represent the orthogonal matrix P. See Further Details.

  • X[out]

    X is REAL array, dimension (LDX,NB)

    The m-by-nb matrix X required to update the unreduced part of A.

  • LDX[in]

    LDX is INTEGER

    The leading dimension of the array X. LDX >= fla_max(1,M).

  • Y[out]

    Y is REAL array, dimension (LDY,NB)

    The n-by-nb matrix Y required to update the unreduced part of A.

  • LDY[in]

    LDY is INTEGER

    The leading dimension of the array Y. LDY >= fla_max(1,N).