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

GGGLM: solves a general Gauss-Markov linear model (GLM) problem: minimize || y ||_2 subject to d = A*x + B*y x where A is an N-by-M matrix, B is an N-by-P matrix, and d is a given N-vector. It is assumed that M <= N <= M+P, and rank(A) = M and rank( A B ) = N. Under these assumptions, the constrained equation is always consistent, and there is a unique solution x and a minimal 2-norm solution y, which is obtained using a generalized QR factorization of the matrices (A, B) given by A = Q*(R), B = Q*T*Z. (0) In particular, if matrix B is square nonsingular, then the problem GLM is equivalent to the following weighted linear least squares problem minimize || inv(B)*(d-A*x) ||_2 x where inv(B) denotes the inverse of B. More...

Public Member Functions

pure subroutine cggglm (n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
 
 la_cggglm
 
pure subroutine dggglm (n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
 
 la_dggglm
 
 la_qggglm
 
pure subroutine sggglm (n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
 
 la_sggglm
 
 la_wggglm
 
pure subroutine zggglm (n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
 
 la_zggglm
 

Detailed Description

GGGLM: solves a general Gauss-Markov linear model (GLM) problem: minimize || y ||_2 subject to d = A*x + B*y x where A is an N-by-M matrix, B is an N-by-P matrix, and d is a given N-vector. It is assumed that M <= N <= M+P, and rank(A) = M and rank( A B ) = N. Under these assumptions, the constrained equation is always consistent, and there is a unique solution x and a minimal 2-norm solution y, which is obtained using a generalized QR factorization of the matrices (A, B) given by A = Q*(R), B = Q*T*Z. (0) In particular, if matrix B is square nonsingular, then the problem GLM is equivalent to the following weighted linear least squares problem minimize || inv(B)*(d-A*x) ||_2 x where inv(B) denotes the inverse of B.

Member Function/Subroutine Documentation

◆ cggglm()

pure subroutine la_lapack::ggglm::cggglm ( integer(ilp), intent(in)  n,
integer(ilp), intent(in)  m,
integer(ilp), intent(in)  p,
complex(sp), dimension(lda,*), intent(inout)  a,
integer(ilp), intent(in)  lda,
complex(sp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
complex(sp), dimension(*), intent(inout)  d,
complex(sp), dimension(*), intent(out)  x,
complex(sp), dimension(*), intent(out)  y,
complex(sp), dimension(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), intent(out)  info 
)
Here is the call graph for this function:

◆ dggglm()

pure subroutine la_lapack::ggglm::dggglm ( integer(ilp), intent(in)  n,
integer(ilp), intent(in)  m,
integer(ilp), intent(in)  p,
real(dp), dimension(lda,*), intent(inout)  a,
integer(ilp), intent(in)  lda,
real(dp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
real(dp), dimension(*), intent(inout)  d,
real(dp), dimension(*), intent(out)  x,
real(dp), dimension(*), intent(out)  y,
real(dp), dimension(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), intent(out)  info 
)
Here is the call graph for this function:

◆ la_cggglm()

la_lapack::ggglm::la_cggglm

◆ la_dggglm()

la_lapack::ggglm::la_dggglm

◆ la_qggglm()

la_lapack::ggglm::la_qggglm

◆ la_sggglm()

la_lapack::ggglm::la_sggglm

◆ la_wggglm()

la_lapack::ggglm::la_wggglm

◆ la_zggglm()

la_lapack::ggglm::la_zggglm

◆ sggglm()

pure subroutine la_lapack::ggglm::sggglm ( integer(ilp), intent(in)  n,
integer(ilp), intent(in)  m,
integer(ilp), intent(in)  p,
real(sp), dimension(lda,*), intent(inout)  a,
integer(ilp), intent(in)  lda,
real(sp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
real(sp), dimension(*), intent(inout)  d,
real(sp), dimension(*), intent(out)  x,
real(sp), dimension(*), intent(out)  y,
real(sp), dimension(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), intent(out)  info 
)
Here is the call graph for this function:

◆ zggglm()

pure subroutine la_lapack::ggglm::zggglm ( integer(ilp), intent(in)  n,
integer(ilp), intent(in)  m,
integer(ilp), intent(in)  p,
complex(dp), dimension(lda,*), intent(inout)  a,
integer(ilp), intent(in)  lda,
complex(dp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
complex(dp), dimension(*), intent(inout)  d,
complex(dp), dimension(*), intent(out)  x,
complex(dp), dimension(*), intent(out)  y,
complex(dp), dimension(*), intent(out)  work,
integer(ilp), intent(in)  lwork,
integer(ilp), intent(out)  info 
)
Here is the call graph for this function:

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