NAME
zlasr - perform the transformation A := P*A, when SIDE =
'L' or 'l' ( Left-hand side ) A := A*P', when SIDE = 'R'
or 'r' ( Right-hand side ) where A is an m by n complex
matrix and P is an orthogonal matrix,
SYNOPSIS
SUBROUTINE ZLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA )
CHARACTER DIRECT, PIVOT, SIDE
INTEGER LDA, M, N
DOUBLE PRECISION C( * ), S( * )
COMPLEX*16 A( LDA, * )
#include <sunperf.h>
void zlasr(char side, char pivot, char direct, int m, int n,
double *dc, double *s, doublecomplex *za, int
lda);
PURPOSE
ZLASR performs the transformation consisting of a sequence
of plane rotations determined by the parameters PIVOT and
DIRECT as follows ( z = m when SIDE = 'L' or 'l' and z = n
when SIDE = 'R' or 'r' ):
When DIRECT = 'F' or 'f' ( Forward sequence ) then
P = P( z - 1 )*...*P( 2 )*P( 1 ),
and when DIRECT = 'B' or 'b' ( Backward sequence ) then
P = P( 1 )*P( 2 )*...*P( z - 1 ),
where P( k ) is a plane rotation matrix for the following
planes:
when PIVOT = 'V' or 'v' ( Variable pivot ),
the plane ( k, k + 1 )
when PIVOT = 'T' or 't' ( Top pivot ),
the plane ( 1, k + 1 )
when PIVOT = 'B' or 'b' ( Bottom pivot ),
the plane ( k, z )
c( k ) and s( k ) must contain the cosine and sine that
define the matrix P( k ). The two by two plane rotation
part of the matrix P( k ), R( k ), is assumed to be of the
form
R( k ) = ( c( k ) s( k ) ).
( -s( k ) c( k ) )
ARGUMENTS
SIDE (input) 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 (input) 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 )
PIVOT (input) CHARACTER*1
Specifies the plane for which P(k) is a plane
rotation matrix. = 'V': Variable pivot, the
plane (k,k+1)
= 'T': Top pivot, the plane (1,k+1)
= 'B': Bottom pivot, the plane (k,z)
M (input) INTEGER
The number of rows of the matrix A. If m <= 1, an
immediate return is effected.
N (input) INTEGER
The number of columns of the matrix A. If n <= 1,
an immediate return is effected.
C, S (input) DOUBLE PRECISION arrays, dimension
(M-1) if SIDE = 'L' (N-1) if SIDE = 'R' c(k) and
s(k) contain the cosine and sine that define the
matrix P(k). The two by two plane rotation part
of the matrix P(k), R(k), is assumed to be of the
form R( k ) = ( c( k ) s( k ) ). ( -s( k ) c(
k ) )
A (input/output) COMPLEX*16 array, dimension (LDA,N)
The m by n matrix A. On exit, A is overwritten by
P*A if SIDE = 'R' or by A*P' if SIDE = 'L'.
LDA (input) INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |