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)#
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
injobSpecifies 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.
innThe order of the matrix T. n >= 0.
inASingle precision array, dimension (n). The diagonal elements of U as returned from SLAGTF.
inBSingle precision array, dimension (n-1). The first super-diagonal elements of U as returned from SLAGTF.
inCSingle precision array, dimension (n-1). The sub-diagonal elements of L as returned from SLAGTF.
inDSingle precision array, dimension (n-2). The second super-diagonal elements of U as returned from SLAGTF.
ininInteger array, dimension (n). Details of the permutation matrix P as returned from SLAGTF.
inoutYSingle precision array, dimension (n). On entry, the right hand side vector y. On exit, overwritten by the solution vector x.
inouttolOn 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.
outinfo= 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).
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
);
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)#
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
injobSpecifies 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.
innThe order of the matrix T. n >= 0.
inADouble precision array, dimension (n). The diagonal elements of U as returned from DLAGTF.
inBDouble precision array, dimension (n-1). The first super-diagonal elements of U as returned from DLAGTF.
inCDouble precision array, dimension (n-1). The sub-diagonal elements of L as returned from DLAGTF.
inDDouble precision array, dimension (n-2). The second super-diagonal elements of U as returned from DLAGTF.
ininInteger array, dimension (n). Details of the permutation matrix P as returned from DLAGTF.
inoutYDouble precision array, dimension (n). On entry, the right hand side vector y. On exit, overwritten by the solution vector x.
inouttolOn 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.
outinfo= 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).
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
);