latdf#

Functions

void slatdf(
    const INT           ijob,
    const INT           n,
    const f32* restrict Z,
    const INT           ldz,
          f32* restrict rhs,
          f32*          rdsum,
          f32*          rdscal,
    const INT* restrict ipiv,
    const INT* restrict jpiv
);
void slatdf(const INT ijob, const INT n, const f32 *restrict Z, const INT ldz, f32 *restrict rhs, f32 *rdsum, f32 *rdscal, const INT *restrict ipiv, const INT *restrict jpiv)#

SLATDF uses the LU factorization of the n-by-n matrix Z computed by SGETC2 and computes a contribution to the reciprocal Dif-estimate by solving Z * x = b for x, and choosing the r.h.s.

b such that the norm of x is as large as possible. On entry rhs = b holds the contribution from earlier solved sub-systems, and on return rhs = x.

The factorization of Z returned by SGETC2 has the form

Z = P * L * U * Q

where P and Q are permutation matrices. L is lower triangular with unit diagonal elements and U is upper triangular.

Further Details:

This routine is a further developed implementation of algorithm BSOLVE in [1] using complete pivoting in the LU factorization.

Contributors:

Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

References:

[1] Bo Kagstrom and Lars Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751. https://doi.org/10.1109/9.29404

[2] Peter Poromaa, On Efficient and Robust Estimators for the Separation between two Regular Matrix Pairs with Applications in Condition Estimation. Report IMINF-95.05, Departement of Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.

Parameters

in
ijob

ijob=2: First compute an approximative null-vector e of Z using SGECON, e is normalized and solve for Zx = +-e - f with the sign giving the greater value of 2-norm(x). About 5 times as expensive as Default. ijob!=2: Local look ahead strategy where all entries of the r.h.s. b is chosen as either +1 or -1 (Default).

in
n

The number of columns of the matrix Z.

in
Z

Array of dimension (ldz, n). The LU part of the factorization of the n-by-n matrix Z computed by SGETC2: Z = P * L * U * Q

in
ldz

The leading dimension of the array Z. ldz>=max(1,n).

inout
rhs

Array of dimension n. On entry, rhs contains contributions from other subsystems. On exit, rhs contains the solution of the subsystem with entries according to the value of ijob.

inout
rdsum

On entry, the sum of squares of computed contributions to the Dif-estimate under computation by STGSYL, where the scaling factor rdscal has been factored out. On exit, the corresponding sum of squares updated with the contributions from the current sub-system.

inout
rdscal

On entry, scaling factor used to prevent overflow in rdsum. On exit, rdscal is updated w.r.t. the current contributions in rdsum.

in
ipiv

Array of dimension n. The pivot indices; for 0<=i<n, row i of the matrix has been interchanged with row ipiv[i].

in
jpiv

Array of dimension n. The pivot indices; for 0<=j<n, column j of the matrix has been interchanged with column jpiv[j].

Functions

void dlatdf(
    const INT           ijob,
    const INT           n,
    const f64* restrict Z,
    const INT           ldz,
          f64* restrict rhs,
          f64*          rdsum,
          f64*          rdscal,
    const INT* restrict ipiv,
    const INT* restrict jpiv
);
void dlatdf(const INT ijob, const INT n, const f64 *restrict Z, const INT ldz, f64 *restrict rhs, f64 *rdsum, f64 *rdscal, const INT *restrict ipiv, const INT *restrict jpiv)#

DLATDF uses the LU factorization of the n-by-n matrix Z computed by DGETC2 and computes a contribution to the reciprocal Dif-estimate by solving Z * x = b for x, and choosing the r.h.s.

b such that the norm of x is as large as possible. On entry rhs = b holds the contribution from earlier solved sub-systems, and on return rhs = x.

The factorization of Z returned by DGETC2 has the form

Z = P * L * U * Q

where P and Q are permutation matrices. L is lower triangular with unit diagonal elements and U is upper triangular.

Further Details:

This routine is a further developed implementation of algorithm BSOLVE in [1] using complete pivoting in the LU factorization.

Contributors:

Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

References:

[1] Bo Kagstrom and Lars Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751. https://doi.org/10.1109/9.29404

[2] Peter Poromaa, On Efficient and Robust Estimators for the Separation between two Regular Matrix Pairs with Applications in Condition Estimation. Report IMINF-95.05, Departement of Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.

Parameters

in
ijob

ijob=2: First compute an approximative null-vector e of Z using DGECON, e is normalized and solve for Zx = +-e - f with the sign giving the greater value of 2-norm(x). About 5 times as expensive as Default. ijob!=2: Local look ahead strategy where all entries of the r.h.s. b is chosen as either +1 or -1 (Default).

in
n

The number of columns of the matrix Z.

in
Z

Array of dimension (ldz, n). The LU part of the factorization of the n-by-n matrix Z computed by DGETC2: Z = P * L * U * Q

in
ldz

The leading dimension of the array Z. ldz>=max(1,n).

inout
rhs

Array of dimension n. On entry, rhs contains contributions from other subsystems. On exit, rhs contains the solution of the subsystem with entries according to the value of ijob.

inout
rdsum

On entry, the sum of squares of computed contributions to the Dif-estimate under computation by DTGSYL, where the scaling factor rdscal has been factored out. On exit, the corresponding sum of squares updated with the contributions from the current sub-system.

inout
rdscal

On entry, scaling factor used to prevent overflow in rdsum. On exit, rdscal is updated w.r.t. the current contributions in rdsum.

in
ipiv

Array of dimension n. The pivot indices; for 0<=i<n, row i of the matrix has been interchanged with row ipiv[i].

in
jpiv

Array of dimension n. The pivot indices; for 0<=j<n, column j of the matrix has been interchanged with column jpiv[j].

Functions

void clatdf(
    const INT           ijob,
    const INT           n,
    const c64* restrict Z,
    const INT           ldz,
          c64* restrict rhs,
          f32*          rdsum,
          f32*          rdscal,
    const INT* restrict ipiv,
    const INT* restrict jpiv
);
void clatdf(const INT ijob, const INT n, const c64 *restrict Z, const INT ldz, c64 *restrict rhs, f32 *rdsum, f32 *rdscal, const INT *restrict ipiv, const INT *restrict jpiv)#

CLATDF computes the contribution to the reciprocal Dif-estimate by solving for x in Z * x = b, where b is chosen such that the norm of x is as large as possible.

It is assumed that LU decomposition of Z has been computed by CGETC2. On entry rhs = f holds the contribution from earlier solved sub-systems, and on return rhs = x.

The factorization of Z returned by CGETC2 has the form

Z = P * L * U * Q

where P and Q are permutation matrices. L is lower triangular with unit diagonal elements and U is upper triangular.

Further Details:

This routine is a further developed implementation of algorithm BSOLVE in [1] using complete pivoting in the LU factorization.

Contributors:

Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

References:

[1] Bo Kagstrom and Lars Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751. https://doi.org/10.1109/9.29404

[2] Peter Poromaa, On Efficient and Robust Estimators for the Separation between two Regular Matrix Pairs with Applications in Condition Estimation. Report IMINF-95.05, Departement of Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.

Parameters

in
ijob

ijob=2: First compute an approximative null-vector e of Z using CGECON, e is normalized and solve for Zx = +-e - f with the sign giving the greater value of 2-norm(x). About 5 times as expensive as Default. ijob!=2: Local look ahead strategy where all entries of the r.h.s. b is chosen as either +1 or -1 (Default).

in
n

The number of columns of the matrix Z.

in
Z

Array of dimension (ldz, n). The LU part of the factorization of the n-by-n matrix Z computed by CGETC2: Z = P * L * U * Q

in
ldz

The leading dimension of the array Z. ldz>=max(1,n).

inout
rhs

Array of dimension n. On entry, rhs contains contributions from other subsystems. On exit, rhs contains the solution of the subsystem with entries according to the value of ijob.

inout
rdsum

On entry, the sum of squares of computed contributions to the Dif-estimate under computation by CTGSYL, where the scaling factor rdscal has been factored out. On exit, the corresponding sum of squares updated with the contributions from the current sub-system.

inout
rdscal

On entry, scaling factor used to prevent overflow in rdsum. On exit, rdscal is updated w.r.t. the current contributions in rdsum.

in
ipiv

Array of dimension n. The pivot indices; for 0<=i<n, row i of the matrix has been interchanged with row ipiv[i].

in
jpiv

Array of dimension n. The pivot indices; for 0<=j<n, column j of the matrix has been interchanged with column jpiv[j].

Functions

void zlatdf(
    const INT            ijob,
    const INT            n,
    const c128* restrict Z,
    const INT            ldz,
          c128* restrict rhs,
          f64*           rdsum,
          f64*           rdscal,
    const INT*  restrict ipiv,
    const INT*  restrict jpiv
);
void zlatdf(const INT ijob, const INT n, const c128 *restrict Z, const INT ldz, c128 *restrict rhs, f64 *rdsum, f64 *rdscal, const INT *restrict ipiv, const INT *restrict jpiv)#

ZLATDF computes the contribution to the reciprocal Dif-estimate by solving for x in Z * x = b, where b is chosen such that the norm of x is as large as possible.

It is assumed that LU decomposition of Z has been computed by ZGETC2. On entry rhs = f holds the contribution from earlier solved sub-systems, and on return rhs = x.

The factorization of Z returned by ZGETC2 has the form

Z = P * L * U * Q

where P and Q are permutation matrices. L is lower triangular with unit diagonal elements and U is upper triangular.

Further Details:

This routine is a further developed implementation of algorithm BSOLVE in [1] using complete pivoting in the LU factorization.

Contributors:

Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

References:

[1] Bo Kagstrom and Lars Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751. https://doi.org/10.1109/9.29404

[2] Peter Poromaa, On Efficient and Robust Estimators for the Separation between two Regular Matrix Pairs with Applications in Condition Estimation. Report IMINF-95.05, Departement of Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.

Parameters

in
ijob

ijob=2: First compute an approximative null-vector e of Z using ZGECON, e is normalized and solve for Zx = +-e - f with the sign giving the greater value of 2-norm(x). About 5 times as expensive as Default. ijob!=2: Local look ahead strategy where all entries of the r.h.s. b is chosen as either +1 or -1 (Default).

in
n

The number of columns of the matrix Z.

in
Z

Array of dimension (ldz, n). The LU part of the factorization of the n-by-n matrix Z computed by ZGETC2: Z = P * L * U * Q

in
ldz

The leading dimension of the array Z. ldz>=max(1,n).

inout
rhs

Array of dimension n. On entry, rhs contains contributions from other subsystems. On exit, rhs contains the solution of the subsystem with entries according to the value of ijob.

inout
rdsum

On entry, the sum of squares of computed contributions to the Dif-estimate under computation by ZTGSYL, where the scaling factor rdscal has been factored out. On exit, the corresponding sum of squares updated with the contributions from the current sub-system.

inout
rdscal

On entry, scaling factor used to prevent overflow in rdsum. On exit, rdscal is updated w.r.t. the current contributions in rdsum.

in
ipiv

Array of dimension n. The pivot indices; for 0<=i<n, row i of the matrix has been interchanged with row ipiv[i].

in
jpiv

Array of dimension n. The pivot indices; for 0<=j<n, column j of the matrix has been interchanged with column jpiv[j].