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

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

Public Member Functions

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
 

Detailed Description

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

Member Function/Subroutine Documentation

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