162 SUBROUTINE dlagts( JOB, N, A, B, C, D, IN, Y, TOL, INFO )
174 DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ), Y( * )
180 DOUBLE PRECISION ONE, ZERO
181 parameter( one = 1.0d+0, zero = 0.0d+0 )
185 DOUBLE PRECISION ABSAK, AK, BIGNUM, EPS, PERT, SFMIN, TEMP
188 INTRINSIC abs, max, sign
191 DOUBLE PRECISION DLAMCH
200 IF( ( abs( job ).GT.2 ) .OR. ( job.EQ.0 ) )
THEN
202 ELSE IF( n.LT.0 )
THEN
206 CALL xerbla(
'DLAGTS', -info )
213 eps = dlamch(
'Epsilon' )
214 sfmin = dlamch(
'Safe minimum' )
218 IF( tol.LE.zero )
THEN
221 $ tol = max( tol, abs( a( 2 ) ), abs( b( 1 ) ) )
223 tol = max( tol, abs( a( k ) ), abs( b( k-1 ) ),
232 IF( abs( job ).EQ.1 )
THEN
234 IF( in( k-1 ).EQ.0 )
THEN
235 y( k ) = y( k ) - c( k-1 )*y( k-1 )
239 y( k ) = temp - c( k-1 )*y( k )
245 temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
246 ELSE IF( k.EQ.n-1 )
THEN
247 temp = y( k ) - b( k )*y( k+1 )
253 IF( absak.LT.one )
THEN
254 IF( absak.LT.sfmin )
THEN
255 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
263 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
273 temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
274 ELSE IF( k.EQ.n-1 )
THEN
275 temp = y( k ) - b( k )*y( k+1 )
280 pert = sign( tol, ak )
283 IF( absak.LT.one )
THEN
284 IF( absak.LT.sfmin )
THEN
285 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
294 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
310 temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
311 ELSE IF( k.EQ.2 )
THEN
312 temp = y( k ) - b( k-1 )*y( k-1 )
318 IF( absak.LT.one )
THEN
319 IF( absak.LT.sfmin )
THEN
320 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
328 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
338 temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
339 ELSE IF( k.EQ.2 )
THEN
340 temp = y( k ) - b( k-1 )*y( k-1 )
345 pert = sign( tol, ak )
348 IF( absak.LT.one )
THEN
349 IF( absak.LT.sfmin )
THEN
350 IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
359 ELSE IF( abs( temp ).GT.absak*bignum )
THEN
370 IF( in( k-1 ).EQ.0 )
THEN
371 y( k-1 ) = y( k-1 ) - c( k-1 )*y( k )
375 y( k ) = temp - c( k-1 )*y( k )
subroutine xerbla(srname, info)
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 ...