fortran-lapack
Loading...
Searching...
No Matches
la_lapack::orcsd Interface Reference

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...

Public Member Functions

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
 

Detailed Description

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).

Member Function/Subroutine Documentation

◆ 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: