ORCSD: computes the CS decomposition of an M-by-M partitioned orthogonal matrix X: [ I 0 0 | 0 0 0 ] [ 0 C 0 | 0 -S 0 ] [ X11 | X12 ] [ U1 | ] [ 0 0 0 | 0 0 -I ] [ V1 | ]**T 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 orthogonal 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 | dorcsd (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, iwork, info) |
|
| la_dorcsd |
|
| la_qorcsd |
|
recursive subroutine | sorcsd (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, iwork, info) |
|
| la_sorcsd |
|
ORCSD: computes the CS decomposition of an M-by-M partitioned orthogonal matrix X: [ I 0 0 | 0 0 0 ] [ 0 C 0 | 0 -S 0 ] [ X11 | X12 ] [ U1 | ] [ 0 0 0 | 0 0 -I ] [ V1 | ]**T 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 orthogonal 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).
◆ dorcsd()
recursive subroutine la_lapack::orcsd::dorcsd |
( |
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, |
|
|
real(dp), dimension(ldx11,*), intent(inout) |
x11, |
|
|
integer(ilp), intent(in) |
ldx11, |
|
|
real(dp), dimension(ldx12,*), intent(inout) |
x12, |
|
|
integer(ilp), intent(in) |
ldx12, |
|
|
real(dp), dimension(ldx21,*), intent(inout) |
x21, |
|
|
integer(ilp), intent(in) |
ldx21, |
|
|
real(dp), dimension(ldx22,*), intent(inout) |
x22, |
|
|
integer(ilp), intent(in) |
ldx22, |
|
|
real(dp), dimension(*), intent(out) |
theta, |
|
|
real(dp), dimension(ldu1,*), intent(out) |
u1, |
|
|
integer(ilp), intent(in) |
ldu1, |
|
|
real(dp), dimension(ldu2,*), intent(out) |
u2, |
|
|
integer(ilp), intent(in) |
ldu2, |
|
|
real(dp), dimension(ldv1t,*), intent(out) |
v1t, |
|
|
integer(ilp), intent(in) |
ldv1t, |
|
|
real(dp), dimension( ldv2t,*), intent(out) |
v2t, |
|
|
integer(ilp), intent(in) |
ldv2t, |
|
|
real(dp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
◆ la_dorcsd()
la_lapack::orcsd::la_dorcsd |
◆ la_qorcsd()
la_lapack::orcsd::la_qorcsd |
◆ la_sorcsd()
la_lapack::orcsd::la_sorcsd |
◆ sorcsd()
recursive subroutine la_lapack::orcsd::sorcsd |
( |
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, |
|
|
real(sp), dimension(ldx11,*), intent(inout) |
x11, |
|
|
integer(ilp), intent(in) |
ldx11, |
|
|
real(sp), dimension(ldx12,*), intent(inout) |
x12, |
|
|
integer(ilp), intent(in) |
ldx12, |
|
|
real(sp), dimension(ldx21,*), intent(inout) |
x21, |
|
|
integer(ilp), intent(in) |
ldx21, |
|
|
real(sp), dimension(ldx22,*), intent(inout) |
x22, |
|
|
integer(ilp), intent(in) |
ldx22, |
|
|
real(sp), dimension(*), intent(out) |
theta, |
|
|
real(sp), dimension(ldu1,*), intent(out) |
u1, |
|
|
integer(ilp), intent(in) |
ldu1, |
|
|
real(sp), dimension(ldu2,*), intent(out) |
u2, |
|
|
integer(ilp), intent(in) |
ldu2, |
|
|
real(sp), dimension(ldv1t,*), intent(out) |
v1t, |
|
|
integer(ilp), intent(in) |
ldv1t, |
|
|
real(sp), dimension( ldv2t,*), intent(out) |
v2t, |
|
|
integer(ilp), intent(in) |
ldv2t, |
|
|
real(sp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
The documentation for this interface was generated from the following file: