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

UNCSD2BY1: computes the CS decomposition of an M-by-Q matrix X with orthonormal columns that has been partitioned into a 2-by-1 block structure: [ I1 0 0 ] [ 0 C 0 ] [ X11 ] [ U1 | ] [ 0 0 0 ] X = [--—] = [------—] [-------—] V1**T . [ X21 ] [ | U2 ] [ 0 0 0 ] [ 0 S 0 ] [ 0 0 I2] X11 is P-by-Q. The unitary matrices U1, U2, and V1 are P-by-P, (M-P)-by-(M-P), and Q-by-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). I1 is a K1-by-K1 identity matrix and I2 is a K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0). More...

Public Member Functions

subroutine cuncsd2by1 (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, rwork, lrwork, iwork, info)
 
 la_cuncsd2by1
 
 la_wuncsd2by1
 
subroutine zuncsd2by1 (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, rwork, lrwork, iwork, info)
 
 la_zuncsd2by1
 

Detailed Description

UNCSD2BY1: computes the CS decomposition of an M-by-Q matrix X with orthonormal columns that has been partitioned into a 2-by-1 block structure: [ I1 0 0 ] [ 0 C 0 ] [ X11 ] [ U1 | ] [ 0 0 0 ] X = [--—] = [------—] [-------—] V1**T . [ X21 ] [ | U2 ] [ 0 0 0 ] [ 0 S 0 ] [ 0 0 I2] X11 is P-by-Q. The unitary matrices U1, U2, and V1 are P-by-P, (M-P)-by-(M-P), and Q-by-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). I1 is a K1-by-K1 identity matrix and I2 is a K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0).

Member Function/Subroutine Documentation

◆ cuncsd2by1()

subroutine la_lapack::uncsd2by1::cuncsd2by1 ( character, intent(in)  jobu1,
character, intent(in)  jobu2,
character, intent(in)  jobv1t,
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(ldx21,*), intent(inout)  x21,
integer(ilp), intent(in)  ldx21,
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(*), 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_cuncsd2by1()

la_lapack::uncsd2by1::la_cuncsd2by1

◆ la_wuncsd2by1()

la_lapack::uncsd2by1::la_wuncsd2by1

◆ la_zuncsd2by1()

la_lapack::uncsd2by1::la_zuncsd2by1

◆ zuncsd2by1()

subroutine la_lapack::uncsd2by1::zuncsd2by1 ( character, intent(in)  jobu1,
character, intent(in)  jobu2,
character, intent(in)  jobv1t,
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(ldx21,*), intent(inout)  x21,
integer(ilp), intent(in)  ldx21,
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(*), 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: