## Developer Reference

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

# ?lasr

Applies a sequence of plane rotations to a general rectangular matrix.

## Syntax

Include Files
• mkl.fi
Description
The routine applies a sequence of plane rotations to a real/complex matrix
A
, from the left or the right.
A
:=
P
*
A
, when
side
=
'L'
( Left-hand side )
A
:=
A
*
P
'
, when
side
=
'R'
( Right-hand side )
where
P
is an orthogonal matrix consisting of a sequence of plane rotations with
z
=
m
when
side
=
'L'
and
z
=
n
when
side
=
'R'
.
When
direct
=
'F'
(Forward sequence), then
P
=
P
(
z
-1)*...
P
(2)*
P
(1)
,
and when
direct
=
'B'
(Backward sequence), then
P
=
P
(1)*
P
(2)*...*
P
(
z
-1)
,
where
P
(
k
) is a plane rotation matrix defined by the 2-by-2 plane rotation: When
pivot
=
'V'
( Variable pivot ), the rotation is performed for the plane (
k
,
k
+ 1), that is,
P
(
k
) has the form where
R
(
k
) appears as a rank-2 modification to the identity matrix in rows and columns
k
and
k
+1.
When
pivot
=
'T'
( Top pivot ), the rotation is performed for the plane
(1,
k
+1)
, so
P
(
k
) has the form where
R
(
k
) appears in rows and columns
k
and
k
+1.
Similarly, when
pivot
=
'B'
( Bottom pivot ), the rotation is performed for the plane
(
k
,
z
)
, giving
P
(
k
) the form where
R
(
k
) appears in rows and columns
k
and
z
. The rotations are performed without ever forming
P
(
k
) explicitly.
Input Parameters
side
CHARACTER*1
. Specifies whether the plane rotation matrix
P
is applied to
A
on the left or the right.
=
'L'
: left, compute
A
:=
P
*
A
=
'R'
: right, compute
A
:=
A
*
P
'
direct
CHARACTER*1
. Specifies whether
P
is a forward or backward sequence of plane rotations.
=
'F'
: forward,
P
=
P
(
z
-1)*...*
P
(2)*
P
(1)
=
'B'
: backward,
P
=
P
(1)*
P
(2)*...*
P
(
z
-1)