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

ORBDB: simultaneously bidiagonalizes the blocks of an M-by-M partitioned orthogonal matrix X: [ B11 | B12 0 0 ] [ X11 | X12 ] [ P1 | ] [ 0 | 0 -I 0 ] [ Q1 | ]**T X = [--------—] = [------—] [-------------—] [------—] . [ X21 | X22 ] [ | P2 ] [ B21 | B22 0 0 ] [ | Q2 ] [ 0 | 0 0 I ] X11 is P-by-Q. Q must be no larger than P, M-P, or M-Q. (If this is not the case, then X must be transposed and/or permuted. This can be done in constant time using the TRANS and SIGNS options. See DORCSD for details.) The orthogonal matrices P1, P2, Q1, and Q2 are P-by-P, (M-P)-by- (M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. They are represented implicitly by Householder vectors. B11, B12, B21, and B22 are Q-by-Q bidiagonal matrices represented implicitly by angles THETA, PHI. More...

Public Member Functions

subroutine dorbdb (trans, signs, m, p, q, x11, ldx11, x12, ldx12, x21, ldx21, x22, ldx22, theta, phi, taup1, taup2, tauq1, tauq2, work, lwork, info)
 
 la_dorbdb
 
 la_qorbdb
 
subroutine sorbdb (trans, signs, m, p, q, x11, ldx11, x12, ldx12, x21, ldx21, x22, ldx22, theta, phi, taup1, taup2, tauq1, tauq2, work, lwork, info)
 
 la_sorbdb
 

Detailed Description

ORBDB: simultaneously bidiagonalizes the blocks of an M-by-M partitioned orthogonal matrix X: [ B11 | B12 0 0 ] [ X11 | X12 ] [ P1 | ] [ 0 | 0 -I 0 ] [ Q1 | ]**T X = [--------—] = [------—] [-------------—] [------—] . [ X21 | X22 ] [ | P2 ] [ B21 | B22 0 0 ] [ | Q2 ] [ 0 | 0 0 I ] X11 is P-by-Q. Q must be no larger than P, M-P, or M-Q. (If this is not the case, then X must be transposed and/or permuted. This can be done in constant time using the TRANS and SIGNS options. See DORCSD for details.) The orthogonal matrices P1, P2, Q1, and Q2 are P-by-P, (M-P)-by- (M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. They are represented implicitly by Householder vectors. B11, B12, B21, and B22 are Q-by-Q bidiagonal matrices represented implicitly by angles THETA, PHI.

Member Function/Subroutine Documentation

◆ dorbdb()

subroutine la_lapack::orbdb::dorbdb ( 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(*), intent(out)  phi,
real(dp), dimension(*), intent(out)  taup1,
real(dp), dimension(*), intent(out)  taup2,
real(dp), dimension(*), intent(out)  tauq1,
real(dp), dimension(*), intent(out)  tauq2,
real(dp), dimension(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), intent(out)  info 
)

◆ la_dorbdb()

la_lapack::orbdb::la_dorbdb

◆ la_qorbdb()

la_lapack::orbdb::la_qorbdb

◆ la_sorbdb()

la_lapack::orbdb::la_sorbdb

◆ sorbdb()

subroutine la_lapack::orbdb::sorbdb ( 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(*), intent(out)  phi,
real(sp), dimension(*), intent(out)  taup1,
real(sp), dimension(*), intent(out)  taup2,
real(sp), dimension(*), intent(out)  tauq1,
real(sp), dimension(*), intent(out)  tauq2,
real(sp), dimension(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), intent(out)  info 
)

The documentation for this interface was generated from the following file: