Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

?ggglm

Solves a general Gauss-Markov linear model problem using a generalized QR factorization.

Syntax

lapack_int
LAPACKE_sggglm
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
m
,
lapack_int
p
,
float
*
a
,
lapack_int
lda
,
float
*
b
,
lapack_int
ldb
,
float
*
d
,
float
*
x
,
float
*
y
);
lapack_int
LAPACKE_dggglm
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
m
,
lapack_int
p
,
double
*
a
,
lapack_int
lda
,
double
*
b
,
lapack_int
ldb
,
double
*
d
,
double
*
x
,
double
*
y
);
lapack_int
LAPACKE_cggglm
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
m
,
lapack_int
p
,
lapack_complex_float
*
a
,
lapack_int
lda
,
lapack_complex_float
*
b
,
lapack_int
ldb
,
lapack_complex_float
*
d
,
lapack_complex_float
*
x
,
lapack_complex_float
*
y
);
lapack_int
LAPACKE_zggglm
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
m
,
lapack_int
p
,
lapack_complex_double
*
a
,
lapack_int
lda
,
lapack_complex_double
*
b
,
lapack_int
ldb
,
lapack_complex_double
*
d
,
lapack_complex_double
*
x
,
lapack_complex_double
*
y
);
Include Files
  • mkl.h
Description
The routine solves a general Gauss-Markov linear model (GLM) problem:
minimize
x
||
y
||
2
subject to
d
=
A
*
x
+
B
*
y
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
Equation
In particular, if matrix
B
is square nonsingular, then the problem GLM is equivalent to the following weighted linear least squares problem
minimize
x
||
B
-1
(
d
-
A
*
x
)||
2
.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
n
The number of rows of the matrices
A
and
B
(
n
0
).
m
The number of columns in
A
(
m
0
).
p
The number of columns in
B
(
p
n
-
m
).
a
,
b
,
d
Arrays:
a
(size max(1,
lda
*
m
) for column major layout and max(1,
lda
*
n
) for row major layout)
contains the
n
-by-
m
matrix
A
.
b
(size max(1,
ldb
*
p
) for column major layout and max(1,
ldb
*
n
) for row major layout)
contains the
n
-by-
p
matrix
B
.
d
, size at least max(1,
n
), contains the left hand side of the GLM equation.
lda
The leading dimension of
a
; at least max(1,
n
)
for column major layout and max(1,
m
) for row major layout
.
ldb
The leading dimension of
b
; at least max(1,
n
)
for column major layout and max(1,
p
) for row major layout
.
Output Parameters
x
,
y
Arrays
x
,
y
. size at least max(1,
m
) for
x
and at least max(1,
p
) for
y
.
On exit,
x
and
y
are the solutions of the GLM problem.
a
On exit, the upper triangular part of the array
a
contains the
m
-by-
m
upper triangular matrix
R
.
b
On exit, if
n
p
, the upper right triangle contains the
n
-by-
n
upper triangular matrix
T
as returned by
?ggrqf
; if
n
>
p
, the elements on and above the
(
n
-
p
)
-th subdiagonal contain the
n
-by-
p
upper trapezoidal matrix
T
.
d
On exit,
d
is destroyed
Return Values
This function returns a value
info
.
If
info
=0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
If
info
= 1
, the upper triangular factor
R
associated with
A
in the generalized QR factorization of the pair
(
A
,
B
)
is singular, so that
rank(
A
) <
m
; the least squares solution could not be computed.
If
info
= 2
, the bottom
(
n
-
m
)
-by-
(
n
-
m
)
part of the upper trapezoidal factor
T
associated with
B
in the generalized QR factorization of the pair
(
A
,
B
)
is singular, so that
rank(
A
B
) <
n
; the least squares solution could not be computed.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804