UNCSD: computes the CS decomposition of an M-by-M partitioned unitary matrix X: [ I 0 0 | 0 0 0 ] [ 0 C 0 | 0 -S 0 ] [ X11 | X12 ] [ U1 | ] [ 0 0 0 | 0 0 -I ] [ V1 | ]**H X = [--------—] = [------—] [------------------—] [------—] . [ X21 | X22 ] [ | U2 ] [ 0 0 0 | I 0 0 ] [ | V2 ] [ 0 S 0 | 0 C 0 ] [ 0 0 I | 0 0 0 ] X11 is P-by-Q. The unitary matrices U1, U2, V1, and V2 are P-by-P, (M-P)-by-(M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. C and S are R-by-R nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which R = MIN(P,M-P,Q,M-Q).
More...
|
recursive subroutine | cuncsd (jobu1, jobu2, jobv1t, jobv2t, trans, signs, m, p, q, x11, ldx11, x12, ldx12, x21, ldx21, x22, ldx22, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, v2t, ldv2t, work, lwork, rwork, lrwork, iwork, info) |
|
| la_cuncsd |
|
| la_wuncsd |
|
recursive subroutine | zuncsd (jobu1, jobu2, jobv1t, jobv2t, trans, signs, m, p, q, x11, ldx11, x12, ldx12, x21, ldx21, x22, ldx22, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, v2t, ldv2t, work, lwork, rwork, lrwork, iwork, info) |
|
| la_zuncsd |
|
UNCSD: computes the CS decomposition of an M-by-M partitioned unitary matrix X: [ I 0 0 | 0 0 0 ] [ 0 C 0 | 0 -S 0 ] [ X11 | X12 ] [ U1 | ] [ 0 0 0 | 0 0 -I ] [ V1 | ]**H X = [--------—] = [------—] [------------------—] [------—] . [ X21 | X22 ] [ | U2 ] [ 0 0 0 | I 0 0 ] [ | V2 ] [ 0 S 0 | 0 C 0 ] [ 0 0 I | 0 0 0 ] X11 is P-by-Q. The unitary matrices U1, U2, V1, and V2 are P-by-P, (M-P)-by-(M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. C and S are R-by-R nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which R = MIN(P,M-P,Q,M-Q).
◆ cuncsd()
recursive subroutine la_lapack::uncsd::cuncsd |
( |
character, intent(in) |
jobu1, |
|
|
character, intent(in) |
jobu2, |
|
|
character, intent(in) |
jobv1t, |
|
|
character, intent(in) |
jobv2t, |
|
|
character, intent(in) |
trans, |
|
|
character, intent(in) |
signs, |
|
|
integer(ilp), intent(in) |
m, |
|
|
integer(ilp), intent(in) |
p, |
|
|
integer(ilp), intent(in) |
q, |
|
|
complex(sp), dimension(ldx11,*), intent(inout) |
x11, |
|
|
integer(ilp), intent(in) |
ldx11, |
|
|
complex(sp), dimension(ldx12,*), intent(inout) |
x12, |
|
|
integer(ilp), intent(in) |
ldx12, |
|
|
complex(sp), dimension(ldx21,*), intent(inout) |
x21, |
|
|
integer(ilp), intent(in) |
ldx21, |
|
|
complex(sp), dimension( ldx22,*), intent(inout) |
x22, |
|
|
integer(ilp), intent(in) |
ldx22, |
|
|
real(sp), dimension(*), intent(out) |
theta, |
|
|
complex(sp), dimension(ldu1,*), intent(out) |
u1, |
|
|
integer(ilp), intent(in) |
ldu1, |
|
|
complex(sp), dimension(ldu2,*), intent(out) |
u2, |
|
|
integer(ilp), intent(in) |
ldu2, |
|
|
complex(sp), dimension(ldv1t,*), intent(out) |
v1t, |
|
|
integer(ilp), intent(in) |
ldv1t, |
|
|
complex(sp), dimension(ldv2t,*), intent(out) |
v2t, |
|
|
integer(ilp), intent(in) |
ldv2t, |
|
|
complex(sp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
real(sp), dimension(*), intent(out) |
rwork, |
|
|
integer(ilp), intent(in) |
lrwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
◆ la_cuncsd()
la_lapack::uncsd::la_cuncsd |
◆ la_wuncsd()
la_lapack::uncsd::la_wuncsd |
◆ la_zuncsd()
la_lapack::uncsd::la_zuncsd |
◆ zuncsd()
recursive subroutine la_lapack::uncsd::zuncsd |
( |
character, intent(in) |
jobu1, |
|
|
character, intent(in) |
jobu2, |
|
|
character, intent(in) |
jobv1t, |
|
|
character, intent(in) |
jobv2t, |
|
|
character, intent(in) |
trans, |
|
|
character, intent(in) |
signs, |
|
|
integer(ilp), intent(in) |
m, |
|
|
integer(ilp), intent(in) |
p, |
|
|
integer(ilp), intent(in) |
q, |
|
|
complex(dp), dimension(ldx11,*), intent(inout) |
x11, |
|
|
integer(ilp), intent(in) |
ldx11, |
|
|
complex(dp), dimension(ldx12,*), intent(inout) |
x12, |
|
|
integer(ilp), intent(in) |
ldx12, |
|
|
complex(dp), dimension(ldx21,*), intent(inout) |
x21, |
|
|
integer(ilp), intent(in) |
ldx21, |
|
|
complex(dp), dimension( ldx22,*), intent(inout) |
x22, |
|
|
integer(ilp), intent(in) |
ldx22, |
|
|
real(dp), dimension(*), intent(out) |
theta, |
|
|
complex(dp), dimension(ldu1,*), intent(out) |
u1, |
|
|
integer(ilp), intent(in) |
ldu1, |
|
|
complex(dp), dimension(ldu2,*), intent(out) |
u2, |
|
|
integer(ilp), intent(in) |
ldu2, |
|
|
complex(dp), dimension(ldv1t,*), intent(out) |
v1t, |
|
|
integer(ilp), intent(in) |
ldv1t, |
|
|
complex(dp), dimension(ldv2t,*), intent(out) |
v2t, |
|
|
integer(ilp), intent(in) |
ldv2t, |
|
|
complex(dp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
real(dp), dimension(*), intent(out) |
rwork, |
|
|
integer(ilp), intent(in) |
lrwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
The documentation for this interface was generated from the following file: