laexc#
Functions
-
void slaexc(const INT wantq, const INT n, f32 *T, const INT ldt, f32 *Q, const INT ldq, const INT j1, const INT n1, const INT n2, f32 *work, INT *info)#
SLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an upper quasi-triangular matrix T by an orthogonal similarity transformation.
T must be in Schur canonical form, that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.
Parameters
inwantqIf nonzero, accumulate the transformation in Q.
innThe order of the matrix T. n >= 0.
inoutTOn entry, the upper quasi-triangular matrix T, in Schur canonical form. On exit, the updated matrix T. Dimension (ldt, n).
inldtThe leading dimension of T. ldt >= max(1, n).
inoutQOn entry, if wantq is nonzero, the orthogonal matrix Q. On exit, if wantq is nonzero, the updated Q. Not referenced if wantq is zero. Dimension (ldq, n).
inldqThe leading dimension of Q. ldq >= 1, and if wantq is nonzero, ldq >= n.
inj1The index of the first row of the first block T11. (0-based indexing)
inn1The order of the first block T11. n1 = 0, 1 or 2.
inn2The order of the second block T22. n2 = 0, 1 or 2.
outworkWorkspace array, dimension (n).
outinfo= 0: successful exit
= 1: the transformed matrix T would be too far from Schur form; the blocks are not swapped and T and Q are unchanged.
void slaexc(
const INT wantq,
const INT n,
f32* T,
const INT ldt,
f32* Q,
const INT ldq,
const INT j1,
const INT n1,
const INT n2,
f32* work,
INT* info
);
Functions
-
void dlaexc(const INT wantq, const INT n, f64 *T, const INT ldt, f64 *Q, const INT ldq, const INT j1, const INT n1, const INT n2, f64 *work, INT *info)#
DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an upper quasi-triangular matrix T by an orthogonal similarity transformation.
T must be in Schur canonical form, that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.
Parameters
inwantqIf nonzero, accumulate the transformation in Q.
innThe order of the matrix T. n >= 0.
inoutTOn entry, the upper quasi-triangular matrix T, in Schur canonical form. On exit, the updated matrix T. Dimension (ldt, n).
inldtThe leading dimension of T. ldt >= max(1, n).
inoutQOn entry, if wantq is nonzero, the orthogonal matrix Q. On exit, if wantq is nonzero, the updated Q. Not referenced if wantq is zero. Dimension (ldq, n).
inldqThe leading dimension of Q. ldq >= 1, and if wantq is nonzero, ldq >= n.
inj1The index of the first row of the first block T11. (0-based indexing)
inn1The order of the first block T11. n1 = 0, 1 or 2.
inn2The order of the second block T22. n2 = 0, 1 or 2.
outworkWorkspace array, dimension (n).
outinfo= 0: successful exit
= 1: the transformed matrix T would be too far from Schur form; the blocks are not swapped and T and Q are unchanged.
void dlaexc(
const INT wantq,
const INT n,
f64* T,
const INT ldt,
f64* Q,
const INT ldq,
const INT j1,
const INT n1,
const INT n2,
f64* work,
INT* info
);