143 SUBROUTINE dlagtm( TRANS, N, NRHS, ALPHA, DL, D, DU, X, LDX, BETA,
152 INTEGER LDB, LDX, N, NRHS
153 DOUBLE PRECISION ALPHA, BETA
156 DOUBLE PRECISION B( LDB, * ), D( * ), DL( * ), DU( * ),
163 DOUBLE PRECISION ONE, ZERO
164 parameter( one = 1.0d+0, zero = 0.0d+0 )
180 IF( beta.EQ.zero )
THEN
186 ELSE IF( beta.EQ.-one )
THEN
189 b( i, j ) = -b( i, j )
194 IF( alpha.EQ.one )
THEN
195 IF( lsame( trans,
'N' ) )
THEN
201 b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j )
203 b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j ) +
205 b( n, j ) = b( n, j ) + dl( n-1 )*x( n-1, j ) +
208 b( i, j ) = b( i, j ) + dl( i-1 )*x( i-1, j ) +
209 $ d( i )*x( i, j ) + du( i )*x( i+1, j )
219 b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j )
221 b( 1, j ) = b( 1, j ) + d( 1 )*x( 1, j ) +
223 b( n, j ) = b( n, j ) + du( n-1 )*x( n-1, j ) +
226 b( i, j ) = b( i, j ) + du( i-1 )*x( i-1, j ) +
227 $ d( i )*x( i, j ) + dl( i )*x( i+1, j )
232 ELSE IF( alpha.EQ.-one )
THEN
233 IF( lsame( trans,
'N' ) )
THEN
239 b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j )
241 b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j ) -
243 b( n, j ) = b( n, j ) - dl( n-1 )*x( n-1, j ) -
246 b( i, j ) = b( i, j ) - dl( i-1 )*x( i-1, j ) -
247 $ d( i )*x( i, j ) - du( i )*x( i+1, j )
257 b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j )
259 b( 1, j ) = b( 1, j ) - d( 1 )*x( 1, j ) -
261 b( n, j ) = b( n, j ) - du( n-1 )*x( n-1, j ) -
264 b( i, j ) = b( i, j ) - du( i-1 )*x( i-1, j ) -
265 $ d( i )*x( i, j ) - dl( i )*x( i+1, j )
subroutine dlagtm(trans, n, nrhs, alpha, dl, d, du, x, ldx, beta, b, ldb)
DLAGTM performs a matrix-matrix product of the form C = αAB+βC, where A is a tridiagonal matrix,...