lagts#

Functions

void slagts(
    const INT           job,
    const INT           n,
    const f32* restrict A,
    const f32* restrict B,
    const f32* restrict C,
    const f32* restrict D,
    const INT* restrict in,
          f32* restrict Y,
          f32*          tol,
          INT*          info
);
void slagts(const INT job, const INT n, const f32 *restrict A, const f32 *restrict B, const f32 *restrict C, const f32 *restrict D, const INT *restrict in, f32 *restrict Y, f32 *tol, INT *info)#

SLAGTS may be used to solve one of the systems of equations.

(T - lambda*I)*x = y or (T - lambda*I)**T*x = y,

where T is an n by n tridiagonal matrix, for x, following the factorization of (T - lambda*I) as

(T - lambda*I) = P*L*U,

by routine SLAGTF. The choice of equation to be solved is controlled by the argument job, and in each case there is an option to perturb zero or very small diagonal elements of U, this option being intended for use in applications such as inverse iteration.

Parameters

in
job

Specifies the job to be performed: = 1: (T - lambda*I)x = y, no perturbation of U. = -1: (T - lambda*I)x = y, with perturbation of U. = 2: (T - lambda*I)^T x = y, no perturbation of U. = -2: (T - lambda*I)^T x = y, with perturbation of U.

in
n

The order of the matrix T. n >= 0.

in
A

Single precision array, dimension (n). The diagonal elements of U as returned from SLAGTF.

in
B

Single precision array, dimension (n-1). The first super-diagonal elements of U as returned from SLAGTF.

in
C

Single precision array, dimension (n-1). The sub-diagonal elements of L as returned from SLAGTF.

in
D

Single precision array, dimension (n-2). The second super-diagonal elements of U as returned from SLAGTF.

in
in

Integer array, dimension (n). Details of the permutation matrix P as returned from SLAGTF.

inout
Y

Single precision array, dimension (n). On entry, the right hand side vector y. On exit, overwritten by the solution vector x.

inout
tol

On entry, with job < 0, tol should be the minimum perturbation to be made to very small diagonal elements of U. If tol is supplied as non-positive, then it is reset to eps*max(|u(i,j)|). If job > 0 then tol is not referenced. On exit, tol is changed as described above, only if tol is non-positive on entry.

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

  • > 0: overflow would occur when computing the info-th element of the solution vector x (job > 0 only).

Functions

void dlagts(
    const INT           job,
    const INT           n,
    const f64* restrict A,
    const f64* restrict B,
    const f64* restrict C,
    const f64* restrict D,
    const INT* restrict in,
          f64* restrict Y,
          f64*          tol,
          INT*          info
);
void dlagts(const INT job, const INT n, const f64 *restrict A, const f64 *restrict B, const f64 *restrict C, const f64 *restrict D, const INT *restrict in, f64 *restrict Y, f64 *tol, INT *info)#

DLAGTS may be used to solve one of the systems of equations.

(T - lambda*I)*x = y or (T - lambda*I)**T*x = y,

where T is an n by n tridiagonal matrix, for x, following the factorization of (T - lambda*I) as

(T - lambda*I) = P*L*U,

by routine DLAGTF. The choice of equation to be solved is controlled by the argument job, and in each case there is an option to perturb zero or very small diagonal elements of U, this option being intended for use in applications such as inverse iteration.

Parameters

in
job

Specifies the job to be performed: = 1: (T - lambda*I)x = y, no perturbation of U. = -1: (T - lambda*I)x = y, with perturbation of U. = 2: (T - lambda*I)^T x = y, no perturbation of U. = -2: (T - lambda*I)^T x = y, with perturbation of U.

in
n

The order of the matrix T. n >= 0.

in
A

Double precision array, dimension (n). The diagonal elements of U as returned from DLAGTF.

in
B

Double precision array, dimension (n-1). The first super-diagonal elements of U as returned from DLAGTF.

in
C

Double precision array, dimension (n-1). The sub-diagonal elements of L as returned from DLAGTF.

in
D

Double precision array, dimension (n-2). The second super-diagonal elements of U as returned from DLAGTF.

in
in

Integer array, dimension (n). Details of the permutation matrix P as returned from DLAGTF.

inout
Y

Double precision array, dimension (n). On entry, the right hand side vector y. On exit, overwritten by the solution vector x.

inout
tol

On entry, with job < 0, tol should be the minimum perturbation to be made to very small diagonal elements of U. If tol is supplied as non-positive, then it is reset to eps*max(|u(i,j)|). If job > 0 then tol is not referenced. On exit, tol is changed as described above, only if tol is non-positive on entry.

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

  • > 0: overflow would occur when computing the info-th element of the solution vector x (job > 0 only).