NAME

zggglm - solve a general Gauss-Markov linear model (GLM) problem


SYNOPSIS

  SUBROUTINE ZGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LDWORK, 
 *      INFO)
  DOUBLE COMPLEX A(LDA,*), B(LDB,*), D(*), X(*), Y(*), WORK(*)
  INTEGER N, M, P, LDA, LDB, LDWORK, INFO
  SUBROUTINE ZGGGLM_64( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, 
 *      LDWORK, INFO)
  DOUBLE COMPLEX A(LDA,*), B(LDB,*), D(*), X(*), Y(*), WORK(*)
  INTEGER*8 N, M, P, LDA, LDB, LDWORK, INFO

F95 INTERFACE

  SUBROUTINE GGGLM( [N], [M], [P], A, [LDA], B, [LDB], D, X, Y, [WORK], 
 *       [LDWORK], [INFO])
  COMPLEX(8), DIMENSION(:) :: D, X, Y, WORK
  COMPLEX(8), DIMENSION(:,:) :: A, B
  INTEGER :: N, M, P, LDA, LDB, LDWORK, INFO
  SUBROUTINE GGGLM_64( [N], [M], [P], A, [LDA], B, [LDB], D, X, Y, 
 *       [WORK], [LDWORK], [INFO])
  COMPLEX(8), DIMENSION(:) :: D, X, Y, WORK
  COMPLEX(8), DIMENSION(:,:) :: A, B
  INTEGER(8) :: N, M, P, LDA, LDB, LDWORK, INFO

C INTERFACE

#include <sunperf.h>

void zggglm(int n, int m, int p, doublecomplex *a, int lda, doublecomplex *b, int ldb, doublecomplex *d, doublecomplex *x, doublecomplex *y, int *info);

void zggglm_64(long n, long m, long p, doublecomplex *a, long lda, doublecomplex *b, long ldb, doublecomplex *d, doublecomplex *x, doublecomplex *y, long *info);


PURPOSE

zggglm 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 A and B.

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.


ARGUMENTS