1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<HTML>
<HEAD><TITLE>MB01RW - SLICOT Library Routine Documentation</TITLE>
</HEAD>
<BODY>
<H2><A Name="MB01RW">MB01RW</A></H2>
<H3>
Computation of matrix expression alpha A X trans(A), X symmetric (BLAS 2 version)
</H3>
<A HREF ="#Specification"><B>[Specification]</B></A>
<A HREF ="#Arguments"><B>[Arguments]</B></A>
<A HREF ="#Method"><B>[Method]</B></A>
<A HREF ="#References"><B>[References]</B></A>
<A HREF ="#Comments"><B>[Comments]</B></A>
<A HREF ="#Example"><B>[Example]</B></A>
<P>
<B><FONT SIZE="+1">Purpose</FONT></B>
<PRE>
To compute the transformation of the symmetric matrix A by the
matrix Z in the form
A := op(Z)*A*op(Z)',
where op(Z) is either Z or its transpose, Z'.
</PRE>
<A name="Specification"><B><FONT SIZE="+1">Specification</FONT></B></A>
<PRE>
SUBROUTINE MB01RW( UPLO, TRANS, M, N, A, LDA, Z, LDZ, DWORK,
$ INFO )
C .. Scalar Arguments ..
CHARACTER TRANS, UPLO
INTEGER INFO, LDA, LDZ, M, N
C .. Array Arguments ..
DOUBLE PRECISION A(LDA,*), DWORK(*), Z(LDZ,*)
</PRE>
<A name="Arguments"><B><FONT SIZE="+1">Arguments</FONT></B></A>
<P>
<B>Mode Parameters</B>
<PRE>
UPLO CHARACTER*1
Specifies whether the upper or lower triangle of A
is stored:
= 'U': Upper triangle of A is stored;
= 'L': Lower triangle of A is stored.
TRANS CHARACTER*1
Specifies whether op(Z) is Z or its transpose Z':
= 'N': op(Z) = Z;
= 'T': op(Z) = Z'.
</PRE>
<B>Input/Output Parameters</B>
<PRE>
M (input) INTEGER
The order of the resulting symmetric matrix op(Z)*A*op(Z)'
and the number of rows of the matrix Z, if TRANS = 'N',
or the number of columns of the matrix Z, if TRANS = 'T'.
M >= 0.
N (input) INTEGER
The order of the symmetric matrix A and the number of
columns of the matrix Z, if TRANS = 'N', or the number of
rows of the matrix Z, if TRANS = 'T'. N >= 0.
A (input/output) DOUBLE PRECISION array, dimension
(LDA,MAX(M,N))
On entry, the leading N-by-N upper or lower triangular
part of this array must contain the upper (UPLO = 'U')
or lower (UPLO = 'L') triangular part of the symmetric
matrix A.
On exit, the leading M-by-M upper or lower triangular
part of this array contains the upper (UPLO = 'U') or
lower (UPLO = 'L') triangular part of the symmetric
matrix op(Z)*A*op(Z)'.
LDA INTEGER
The leading dimension of the array A. LDA >= MAX(1,M,N).
Z (input) DOUBLE PRECISION array, dimension (LDQ,K)
where K = N if TRANS = 'N' and K = M if TRANS = 'T'.
The leading M-by-N part, if TRANS = 'N', or N-by-M part,
if TRANS = 'T', of this array contains the matrix Z.
LDZ INTEGER
The leading dimension of the array Z.
LDZ >= MAX(1,M) if TRANS = 'N' and
LDZ >= MAX(1,N) if TRANS = 'T'.
</PRE>
<B>Workspace</B>
<PRE>
DWORK DOUBLE PRECISION array, dimension (N)
</PRE>
<B>Error Indicator</B>
<PRE>
INFO INTEGER
= 0: successful exit;
< 0: if INFO = -i, the i-th argument had an illegal
value.
</PRE>
<A name="Comments"><B><FONT SIZE="+1">Further Comments</FONT></B></A>
<PRE>
This is a simpler, BLAS 2 version for MB01RD.
</PRE>
<A name="Example"><B><FONT SIZE="+1">Example</FONT></B></A>
<P>
<B>Program Text</B>
<PRE>
None
</PRE>
<B>Program Data</B>
<PRE>
None
</PRE>
<B>Program Results</B>
<PRE>
None
</PRE>
<HR>
<A HREF=support.html><B>Return to Supporting Routines index</B></A></BODY>
</HTML>
|