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 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
<HTML>
<HEAD><TITLE>MB01UD - SLICOT Library Routine Documentation</TITLE>
</HEAD>
<BODY>
<H2><A Name="MB01UD">MB01UD</A></H2>
<H3>
Computation of matrix expressions alpha H A or alpha A H, H Hessenberg matrix
</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 one of the matrix products
B = alpha*op( H ) * A, or B = alpha*A * op( H ),
where alpha is a scalar, A and B are m-by-n matrices, H is an
upper Hessenberg matrix, and op( H ) is one of
op( H ) = H or op( H ) = H', the transpose of H.
</PRE>
<A name="Specification"><B><FONT SIZE="+1">Specification</FONT></B></A>
<PRE>
SUBROUTINE MB01UD( SIDE, TRANS, M, N, ALPHA, H, LDH, A, LDA, B,
$ LDB, INFO )
C .. Scalar Arguments ..
CHARACTER SIDE, TRANS
INTEGER INFO, LDA, LDB, LDH, M, N
DOUBLE PRECISION ALPHA
C .. Array Arguments ..
DOUBLE PRECISION A(LDA,*), B(LDB,*), H(LDH,*)
</PRE>
<A name="Arguments"><B><FONT SIZE="+1">Arguments</FONT></B></A>
<P>
<B>Mode Parameters</B>
<PRE>
SIDE CHARACTER*1
Specifies whether the Hessenberg matrix H appears on the
left or right in the matrix product as follows:
= 'L': B = alpha*op( H ) * A;
= 'R': B = alpha*A * op( H ).
TRANS CHARACTER*1
Specifies the form of op( H ) to be used in the matrix
multiplication as follows:
= 'N': op( H ) = H;
= 'T': op( H ) = H';
= 'C': op( H ) = H'.
</PRE>
<B>Input/Output Parameters</B>
<PRE>
M (input) INTEGER
The number of rows of the matrices A and B. M >= 0.
N (input) INTEGER
The number of columns of the matrices A and B. N >= 0.
ALPHA (input) DOUBLE PRECISION
The scalar alpha. When alpha is zero then H is not
referenced and A need not be set before entry.
H (input) DOUBLE PRECISION array, dimension (LDH,k)
where k is M when SIDE = 'L' and is N when SIDE = 'R'.
On entry with SIDE = 'L', the leading M-by-M upper
Hessenberg part of this array must contain the upper
Hessenberg matrix H.
On entry with SIDE = 'R', the leading N-by-N upper
Hessenberg part of this array must contain the upper
Hessenberg matrix H.
The elements below the subdiagonal are not referenced,
except possibly for those in the first column, which
could be overwritten, but are restored on exit.
LDH INTEGER
The leading dimension of the array H. LDH >= max(1,k),
where k is M when SIDE = 'L' and is N when SIDE = 'R'.
A (input) DOUBLE PRECISION array, dimension (LDA,N)
The leading M-by-N part of this array must contain the
matrix A.
LDA INTEGER
The leading dimension of the array A. LDA >= max(1,M).
B (output) DOUBLE PRECISION array, dimension (LDB,N)
The leading M-by-N part of this array contains the
computed product.
LDB INTEGER
The leading dimension of the array B. LDB >= max(1,M).
</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="Method"><B><FONT SIZE="+1">Method</FONT></B></A>
<PRE>
The required matrix product is computed in two steps. In the first
step, the upper triangle of H is used; in the second step, the
contribution of the subdiagonal is added. A fast BLAS 3 DTRMM
operation is used in the first step.
</PRE>
<A name="Comments"><B><FONT SIZE="+1">Further Comments</FONT></B></A>
<PRE>
None
</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>
<p>
<A HREF=..\libindex.html><B>Return to index</B></A></BODY>
</HTML>
|