sgebd2(3)
NAME
- SGEBD2 - reduce a real general m by n matrix A to upper or
- lower bidiagonal form B by an orthogonal transformation
SYNOPSIS
SUBROUTINE SGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK,
INFO )
INTEGER INFO, LDA, M, N
REAL A( LDA, * ), D( * ), E( * ), TAUP( * ),
TAUQ( * ), WORK( * )
PURPOSE
- SGEBD2 reduces a real general m by n matrix A to upper or
- lower bidiagonal form B by an orthogonal transformation: Q' * A *
- P = B. If m >= n, B is upper bidiagonal; if m < n, B is lower
- bidiagonal.
ARGUMENTS
- M (input) INTEGER
- The number of rows in the matrix A. M >= 0.
- N (input) INTEGER
- The number of columns in the matrix A. N >= 0.
- A (input/output) REAL array, dimension (LDA,N)
- On entry, the m by n general matrix to be reduced.
- On exit, if m >= n, the diagonal and the first superdiagonal are
- overwritten with the upper bidiagonal matrix B; the elements be
- low the diagonal, with the array TAUQ, represent the orthogonal
- matrix Q as a product of elementary reflectors, and the elements
- above the first superdiagonal, with the array TAUP, represent the
- orthogonal matrix P as a product of elementary reflectors; if m <
- n, the diagonal and the first subdiagonal are overwritten with
- the lower bidiagonal matrix B; the elements below the first sub
- diagonal, with the array TAUQ, represent the orthogonal matrix Q
- as a product of elementary reflectors, and the elements above the
- diagonal, with the array TAUP, represent the orthogonal matrix P
- as a product of elementary reflectors. See Further Details. LDA
- (input) INTEGER The leading dimension of the array A. LDA >=
- max(1,M).
- D (output) REAL array, dimension (min(M,N))
- The diagonal elements of the bidiagonal matrix B:
- D(i) = A(i,i).
- E (output) REAL array, dimension (min(M,N)-1)
- The off-diagonal elements of the bidiagonal matrix
- B: if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1; if m < n, E(i)
- = A(i+1,i) for i = 1,2,...,m-1.
- TAUQ (output) REAL array dimension (min(M,N))
- The scalar factors of the elementary reflectors
- which represent the orthogonal matrix Q. See Further Details.
- TAUP (output) REAL array, dimension (min(M,N)) The scalar fac
- tors of the elementary reflectors which represent the orthogonal
- matrix P. See Further Details. WORK (workspace) REAL array,
- dimension (max(M,N))
- INFO (output) INTEGER
- = 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille
- gal value.
FURTHER DETAILS
- The matrices Q and P are represented as products of ele
- mentary reflectors:
- If m >= n,
Q = H(1) H(2) . . . H(n) and P = G(1) G(2) . . .
- G(n-1)
- Each H(i) and G(i) has the form:
H(i) = I - tauq * v * v' and G(i) = I - taup * u * u'
- where tauq and taup are real scalars, and v and u are real
- vectors; v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit
- in A(i+1:m,i); u(1:i) = 0, u(i+1) = 1, and u(i+2:n) is stored on
- exit in A(i,i+2:n); tauq is stored in TAUQ(i) and taup in
- TAUP(i).
- If m < n,
Q = H(1) H(2) . . . H(m-1) and P = G(1) G(2) . . .
- G(m)
- Each H(i) and G(i) has the form:
H(i) = I - tauq * v * v' and G(i) = I - taup * u * u'
- where tauq and taup are real scalars, and v and u are real
- vectors; v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit
- in A(i+2:m,i); u(1:i-1) = 0, u(i) = 1, and u(i+1:n) is stored on
- exit in A(i,i+1:n); tauq is stored in TAUQ(i) and taup in
- TAUP(i).
- The contents of A on exit are illustrated by the following
- examples:
- m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n):
( d e u1 u1 u1 ) ( d u1 u1 u1 u1
- u1 )
( v1 d e u2 u2 ) ( e d u2 u2 u2
- u2 )
( v1 v2 d e u3 ) ( v1 e d u3 u3
- u3 )
( v1 v2 v3 d e ) ( v1 v2 e d u4
- u4 )
( v1 v2 v3 v4 d ) ( v1 v2 v3 e d
- u5 )
( v1 v2 v3 v4 v5 )
- where d and e denote diagonal and off-diagonal elements of
- B, vi denotes an element of the vector defining H(i), and ui an
- element of the vector defining G(i).
- LAPACK version 3.0 15 June 2000