Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?labrd

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

Syntax

call slabrd
(
m
,
n
,
nb
,
a
,
lda
,
d
,
e
,
tauq
,
taup
,
x
,
ldx
,
y
,
ldy
)
call dlabrd
(
m
,
n
,
nb
,
a
,
lda
,
d
,
e
,
tauq
,
taup
,
x
,
ldx
,
y
,
ldy
)
call clabrd
(
m
,
n
,
nb
,
a
,
lda
,
d
,
e
,
tauq
,
taup
,
x
,
ldx
,
y
,
ldy
)
call zlabrd
(
m
,
n
,
nb
,
a
,
lda
,
d
,
e
,
tauq
,
taup
,
x
,
ldx
,
y
,
ldy
)
Include Files
  • mkl.fi
Description
The routine reduces the first
nb
rows and columns of a general
m
-by-
n
matrix
A
to upper or lower bidiagonal form by an orthogonal/unitary transformation
Q'
*
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.
The matrices
Q
and
P
are represented as products of elementary reflectors:
Q
=
H
(1)*(2)* ...*
H
(
nb
),
and
P
=
G
(1)*
G
(2)* ...*
G
(
nb
)
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 scalars, and
v
and
u
are vectors.
The elements of the vectors
v
and
u
together form the
m
-by-
nb
matrix
V
and the
nb
-by-
n
matrix
U'
which are needed, with
X
and
Y
, to apply the transformation to the unreduced part of the matrix, using a block update of the form:
A
:=
A
-
V
*
Y'
-
X
*
U'
.
This is an auxiliary routine called by
?gebrd
.
Input Parameters