public interface tgexc
TGEXC reorders the generalized Schur decomposition of a complex
matrix pair (A,B), using an unitary equivalence transformation
(A, B) := Q * (A, B) * ZH, so that the diagonal block of (A, B) with
row index IFST is moved to row ILST.
(A, B) must be in generalized Schur canonical form, that is, A and
B are both upper triangular.
Optionally, the matrices Q and Z of generalized Schur vectors are
updated.
Q(in) * A(in) * Z(in)H = Q(out) * A(out) * Z(out)H
Q(in) * B(in) * Z(in)H = Q(out) * B(out) * Z(out)**H
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantq |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantz |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
q(ldq,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldq |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ifst |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
ilst |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantq |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantz |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
q(ldq,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldq |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
ifst |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
ilst |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantq |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantz |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
q(ldq,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldq |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
ifst |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
ilst |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantq |
|
|
logical(kind=lk),
|
intent(in) |
|
|
:: |
wantz |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
q(ldq,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldq |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ifst |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
ilst |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures