162 SUBROUTINE dlagts( JOB, N, A, B, C, D, IN, Y, TOL, INFO )
175 DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ), Y( * )
181 DOUBLE PRECISION ONE, ZERO
182 parameter ( one = 1.0d+0, zero = 0.0d+0 )
186 DOUBLE PRECISION ABSAK, AK, BIGNUM, EPS, PERT, SFMIN, TEMP
189 INTRINSIC abs, max, sign
192 DOUBLE PRECISION DLAMCH
201 IF( ( abs( job ).GT.2 ) .OR. ( job.EQ.0 ) )
THEN
203 ELSE IF( n.LT.0 )
THEN
207 CALL xerbla(
'DLAGTS', -info )
214 eps = dlamch(
'Epsilon' )
215 sfmin = dlamch(
'Safe minimum' )
219 IF( tol.LE.zero )
THEN
222 $ tol = max( tol, abs( a( 2 ) ), abs( b( 1 ) ) )
224 tol = max( tol, abs( a( k ) ), abs( b( k-1 ) ),
233 IF( abs( job ).EQ.1 )
THEN
235 IF( in( k-1 ).EQ.0 )
THEN
236 y( k ) = y( k ) - c( k-1 )*y( k-1 )
240 y( k ) = temp - c( k-1 )*y( k )
246 temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
247 ELSE IF( k.EQ.n-1 )
THEN
248 temp = y( k ) - b( k )*y( k+1 )
254 IF( absak.LT.one )
THEN
255 IF( absak.LT.sfmin )
THEN
256 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
264 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
274 temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
275 ELSE IF( k.EQ.n-1 )
THEN
276 temp = y( k ) - b( k )*y( k+1 )
281 pert = sign( tol, ak )
284 IF( absak.LT.one )
THEN
285 IF( absak.LT.sfmin )
THEN
286 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
295 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
311 temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
312 ELSE IF( k.EQ.2 )
THEN
313 temp = y( k ) - b( k-1 )*y( k-1 )
319 IF( absak.LT.one )
THEN
320 IF( absak.LT.sfmin )
THEN
321 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
329 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
339 temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
340 ELSE IF( k.EQ.2 )
THEN
341 temp = y( k ) - b( k-1 )*y( k-1 )
346 pert = sign( tol, ak )
349 IF( absak.LT.one )
THEN
350 IF( absak.LT.sfmin )
THEN
351 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
360 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
371 IF( in( k-1 ).EQ.0 )
THEN
372 y( k-1 ) = y( k-1 ) - c( k-1 )*y( k )
376 y( k ) = temp - c( k-1 )*y( k )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlagts(JOB, N, A, B, C, D, IN, Y, TOL, INFO)
DLAGTS solves the system of equations (T-λI)x = y or (T-λI)Tx = y,where T is a general tridiagonal ma...