 LAPACK  3.10.1 LAPACK: Linear Algebra PACKage

## ◆ zlaptm()

 subroutine zlaptm ( character UPLO, integer N, integer NRHS, double precision ALPHA, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( ldx, * ) X, integer LDX, double precision BETA, complex*16, dimension( ldb, * ) B, integer LDB )

ZLAPTM

Purpose:
``` ZLAPTM multiplies an N by NRHS matrix X by a Hermitian tridiagonal
matrix A and stores the result in a matrix B.  The operation has the
form

B := alpha * A * X + beta * B

where alpha may be either 1. or -1. and beta may be 0., 1., or -1.```
Parameters
 [in] UPLO ``` UPLO is CHARACTER Specifies whether the superdiagonal or the subdiagonal of the tridiagonal matrix A is stored. = 'U': Upper, E is the superdiagonal of A. = 'L': Lower, E is the subdiagonal of A.``` [in] N ``` N is INTEGER The order of the matrix A. N >= 0.``` [in] NRHS ``` NRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B.``` [in] ALPHA ``` ALPHA is DOUBLE PRECISION The scalar alpha. ALPHA must be 1. or -1.; otherwise, it is assumed to be 0.``` [in] D ``` D is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the tridiagonal matrix A.``` [in] E ``` E is COMPLEX*16 array, dimension (N-1) The (n-1) subdiagonal or superdiagonal elements of A.``` [in] X ``` X is COMPLEX*16 array, dimension (LDX,NRHS) The N by NRHS matrix X.``` [in] LDX ``` LDX is INTEGER The leading dimension of the array X. LDX >= max(N,1).``` [in] BETA ``` BETA is DOUBLE PRECISION The scalar beta. BETA must be 0., 1., or -1.; otherwise, it is assumed to be 1.``` [in,out] B ``` B is COMPLEX*16 array, dimension (LDB,NRHS) On entry, the N by NRHS matrix B. On exit, B is overwritten by the matrix expression B := alpha * A * X + beta * B.``` [in] LDB ``` LDB is INTEGER The leading dimension of the array B. LDB >= max(N,1).```

Definition at line 127 of file zlaptm.f.

129 *
130 * -- LAPACK test routine --
131 * -- LAPACK is a software package provided by Univ. of Tennessee, --
132 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
133 *
134 * .. Scalar Arguments ..
135  CHARACTER UPLO
136  INTEGER LDB, LDX, N, NRHS
137  DOUBLE PRECISION ALPHA, BETA
138 * ..
139 * .. Array Arguments ..
140  DOUBLE PRECISION D( * )
141  COMPLEX*16 B( LDB, * ), E( * ), X( LDX, * )
142 * ..
143 *
144 * =====================================================================
145 *
146 * .. Parameters ..
147  DOUBLE PRECISION ONE, ZERO
148  parameter( one = 1.0d+0, zero = 0.0d+0 )
149 * ..
150 * .. Local Scalars ..
151  INTEGER I, J
152 * ..
153 * .. External Functions ..
154  LOGICAL LSAME
155  EXTERNAL lsame
156 * ..
157 * .. Intrinsic Functions ..
158  INTRINSIC dconjg
159 * ..
160 * .. Executable Statements ..
161 *
162  IF( n.EQ.0 )
163  \$ RETURN
164 *
165  IF( beta.EQ.zero ) THEN
166  DO 20 j = 1, nrhs
167  DO 10 i = 1, n
168  b( i, j ) = zero
169  10 CONTINUE
170  20 CONTINUE
171  ELSE IF( beta.EQ.-one ) THEN
172  DO 40 j = 1, nrhs
173  DO 30 i = 1, n
174  b( i, j ) = -b( i, j )
175  30 CONTINUE
176  40 CONTINUE
177  END IF
178 *
179  IF( alpha.EQ.one ) THEN
180  IF( lsame( uplo, 'U' ) ) THEN
181 *
182 * Compute B := B + A*X, where E is the superdiagonal of A.
183 *
184  DO 60 j = 1, nrhs
185  IF( n.EQ.1 ) THEN
186  b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j )
187  ELSE
188  b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j ) +
189  \$ e( 1 )*x( 2, j )
190  b( n, j ) = b( n, j ) + dconjg( e( n-1 ) )*
191  \$ x( n-1, j ) + d( n )*x( n, j )
192  DO 50 i = 2, n - 1
193  b( i, j ) = b( i, j ) + dconjg( e( i-1 ) )*
194  \$ x( i-1, j ) + d( i )*x( i, j ) +
195  \$ e( i )*x( i+1, j )
196  50 CONTINUE
197  END IF
198  60 CONTINUE
199  ELSE
200 *
201 * Compute B := B + A*X, where E is the subdiagonal of A.
202 *
203  DO 80 j = 1, nrhs
204  IF( n.EQ.1 ) THEN
205  b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j )
206  ELSE
207  b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j ) +
208  \$ dconjg( e( 1 ) )*x( 2, j )
209  b( n, j ) = b( n, j ) + e( n-1 )*x( n-1, j ) +
210  \$ d( n )*x( n, j )
211  DO 70 i = 2, n - 1
212  b( i, j ) = b( i, j ) + e( i-1 )*x( i-1, j ) +
213  \$ d( i )*x( i, j ) +
214  \$ dconjg( e( i ) )*x( i+1, j )
215  70 CONTINUE
216  END IF
217  80 CONTINUE
218  END IF
219  ELSE IF( alpha.EQ.-one ) THEN
220  IF( lsame( uplo, 'U' ) ) THEN
221 *
222 * Compute B := B - A*X, where E is the superdiagonal of A.
223 *
224  DO 100 j = 1, nrhs
225  IF( n.EQ.1 ) THEN
226  b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j )
227  ELSE
228  b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j ) -
229  \$ e( 1 )*x( 2, j )
230  b( n, j ) = b( n, j ) - dconjg( e( n-1 ) )*
231  \$ x( n-1, j ) - d( n )*x( n, j )
232  DO 90 i = 2, n - 1
233  b( i, j ) = b( i, j ) - dconjg( e( i-1 ) )*
234  \$ x( i-1, j ) - d( i )*x( i, j ) -
235  \$ e( i )*x( i+1, j )
236  90 CONTINUE
237  END IF
238  100 CONTINUE
239  ELSE
240 *
241 * Compute B := B - A*X, where E is the subdiagonal of A.
242 *
243  DO 120 j = 1, nrhs
244  IF( n.EQ.1 ) THEN
245  b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j )
246  ELSE
247  b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j ) -
248  \$ dconjg( e( 1 ) )*x( 2, j )
249  b( n, j ) = b( n, j ) - e( n-1 )*x( n-1, j ) -
250  \$ d( n )*x( n, j )
251  DO 110 i = 2, n - 1
252  b( i, j ) = b( i, j ) - e( i-1 )*x( i-1, j ) -
253  \$ d( i )*x( i, j ) -
254  \$ dconjg( e( i ) )*x( i+1, j )
255  110 CONTINUE
256  END IF
257  120 CONTINUE
258  END IF
259  END IF
260  RETURN
261 *
262 * End of ZLAPTM
263 *
logical function lsame(CA, CB)
LSAME
Definition: lsame.f:53
Here is the caller graph for this function: