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

ORCSD2BY1: 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 orthogonal 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 dorcsd2by1 (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, iwork, info)
 
 la_dorcsd2by1
 
 la_qorcsd2by1
 
subroutine sorcsd2by1 (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, iwork, info)
 
 la_sorcsd2by1
 

Detailed Description

ORCSD2BY1: 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 orthogonal 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

◆ dorcsd2by1()

subroutine la_lapack::orcsd2by1::dorcsd2by1 ( 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,
real(dp), dimension(ldx11,*), intent(inout)  x11,
integer(ilp), intent(in)  ldx11,
real(dp), dimension(ldx21,*), intent(inout)  x21,
integer(ilp), intent(in)  ldx21,
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(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

◆ la_dorcsd2by1()

la_lapack::orcsd2by1::la_dorcsd2by1

◆ la_qorcsd2by1()

la_lapack::orcsd2by1::la_qorcsd2by1

◆ la_sorcsd2by1()

la_lapack::orcsd2by1::la_sorcsd2by1

◆ sorcsd2by1()

subroutine la_lapack::orcsd2by1::sorcsd2by1 ( 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,
real(sp), dimension(ldx11,*), intent(inout)  x11,
integer(ilp), intent(in)  ldx11,
real(sp), dimension(ldx21,*), intent(inout)  x21,
integer(ilp), intent(in)  ldx21,
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(*), 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: