Developer Reference

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

p?unmbr

Multiplies a general matrix by one of the unitary transformation matrices from a reduction to bidiagonal form determined by
p?gebrd
.

Syntax

call pcunmbr
(
vect
,
side
,
trans
,
m
,
n
,
k
,
a
,
ia
,
ja
,
desca
,
tau
,
c
,
ic
,
jc
,
descc
,
work
,
lwork
,
info
)
call pzunmbr
(
vect
,
side
,
trans
,
m
,
n
,
k
,
a
,
ia
,
ja
,
desca
,
tau
,
c
,
ic
,
jc
,
descc
,
work
,
lwork
,
info
)
Include Files
Description
If
vect
= 'Q'
, the
p?unmbr
routine
overwrites the general complex distributed
m
-by-
n
matrix sub(
C
) =
C
(
:
+
m
-1,
:
+
n
-1) with
side
=
'L'
side
=
'R'
trans
=
'N'
:
Q
*sub(
C
)
sub(
C
)*
Q
trans
=
'C'
:
Q
H
*sub(
C
)
sub(
C
)*
Q
H
If
vect
= 'P'
, the
routine
overwrites sub(
C
) with
side
=
'L'
side
=
'R'
trans
=
'N'
:
P
*sub(
C
)
sub(
C
)*
P
trans
=
'C'
:
P
H
*sub(
C
)
sub(
C
)*
P
H
Here
Q
and
P
H
are the unitary distributed matrices determined by
p?gebrd
when reducing a complex distributed matrix
A
(
ia
:*,
ja
:*) to bidiagonal form:
A
(
ia
:*,
ja
:*) =
Q
*
B
*
P
H
.
Q
and
P
H
are defined as products of elementary reflectors
H
(
i
) and
G
(
i
) respectively.
Let
nq
=
m
if
side
=
'L'
and
nq
=
n
if
side
=
'R'
. Therefore
nq
is the order of the unitary matrix
Q
or
P
H
that is applied.
If
vect
=
'Q'
,
A
(
ia
:*,
ja
:*) is assumed to have been an
nq
-by-
k
matrix:
If
nq
k
,
Q
=
H
(1)
H
(2)...
H
(
k
);