160 SUBROUTINE dlagts( JOB, N, A, B, C, D, IN, Y, TOL, INFO )
172 DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ), Y( * )
178 DOUBLE PRECISION ONE, ZERO
179 parameter( one = 1.0d+0, zero = 0.0d+0 )
183 DOUBLE PRECISION ABSAK, AK, BIGNUM, EPS, PERT, SFMIN, TEMP
186 INTRINSIC abs, max, sign
189 DOUBLE PRECISION DLAMCH
198 IF( ( abs( job ).GT.2 ) .OR. ( job.EQ.0 ) )
THEN
200 ELSE IF( n.LT.0 )
THEN
204 CALL xerbla(
'DLAGTS', -info )
211 eps = dlamch(
'Epsilon' )
212 sfmin = dlamch(
'Safe minimum' )
216 IF( tol.LE.zero )
THEN
219 $ tol = max( tol, abs( a( 2 ) ), abs( b( 1 ) ) )
221 tol = max( tol, abs( a( k ) ), abs( b( k-1 ) ),
230 IF( abs( job ).EQ.1 )
THEN
232 IF( in( k-1 ).EQ.0 )
THEN
233 y( k ) = y( k ) - c( k-1 )*y( k-1 )
237 y( k ) = temp - c( k-1 )*y( k )
243 temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
244 ELSE IF( k.EQ.n-1 )
THEN
245 temp = y( k ) - b( k )*y( k+1 )
251 IF( absak.LT.one )
THEN
252 IF( absak.LT.sfmin )
THEN
253 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
261 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
271 temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
272 ELSE IF( k.EQ.n-1 )
THEN
273 temp = y( k ) - b( k )*y( k+1 )
278 pert = sign( tol, ak )
281 IF( absak.LT.one )
THEN
282 IF( absak.LT.sfmin )
THEN
283 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
292 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
308 temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
309 ELSE IF( k.EQ.2 )
THEN
310 temp = y( k ) - b( k-1 )*y( k-1 )
316 IF( absak.LT.one )
THEN
317 IF( absak.LT.sfmin )
THEN
318 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
326 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
336 temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
337 ELSE IF( k.EQ.2 )
THEN
338 temp = y( k ) - b( k-1 )*y( k-1 )
343 pert = sign( tol, ak )
346 IF( absak.LT.one )
THEN
347 IF( absak.LT.sfmin )
THEN
348 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
357 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
368 IF( in( k-1 ).EQ.0 )
THEN
369 y( k-1 ) = y( k-1 ) - c( k-1 )*y( k )
373 y( k ) = temp - c( k-1 )*y( k )
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 ...