NAG Library Function Document
nag_dorgql (f08cfc)
1 Purpose
nag_dorgql (f08cfc) generates all or part of the real
by
orthogonal matrix
from a
factorization computed by
nag_dgeqlf (f08cec).
2 Specification
| #include <nag.h> |
| #include <nagf08.h> |
| void |
nag_dorgql (Nag_OrderType order,
Integer m,
Integer n,
Integer k,
double a[],
Integer pda,
const double tau[],
NagError *fail) |
|
3 Description
nag_dorgql (f08cfc) is intended to be used after a call to
nag_dgeqlf (f08cec), which performs a
factorization of a real matrix
. The orthogonal matrix
is represented as a product of elementary reflectors.
This function may be used to generate explicitly as a square matrix, or to form only its trailing columns.
Usually
is determined from the
factorization of an
by
matrix
with
. The whole of
may be computed by:
nag_dorgql(order,m,m,p,&a,pda,tau,&fail)
(note that the array
a must have at least
columns) or its trailing
columns by:
nag_dorgql(order,m,p,p,&a,pda,tau,&fail)
The columns of
returned by the last call form an orthonormal basis for the space spanned by the columns of
; thus
nag_dgeqlf (f08cec) followed by nag_dorgql (f08cfc) can be used to orthogonalise the columns of
.
The information returned by
nag_dgeqlf (f08cec) also yields the
factorization of the trailing
columns of
, where
. The orthogonal matrix arising from this factorization can be computed by:
nag_dorgql(order,m,m,k,&a,pda,tau,&fail)
or its trailing
columns by:
nag_dorgql(order,m,k,k,&a,pda,tau,&fail)
4 References
Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J J, Du Croz J J, Greenbaum A, Hammarling S, McKenney A and Sorensen D (1999)
LAPACK Users' Guide (3rd Edition) SIAM, Philadelphia
http://www.netlib.org/lapack/lug
Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
5 Arguments
- 1:
order – Nag_OrderTypeInput
-
On entry: the
order argument specifies the two-dimensional storage scheme being used, i.e., row-major ordering or column-major ordering. C language defined storage is specified by
. See
Section 3.2.1.3 in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint:
or Nag_ColMajor.
- 2:
m – IntegerInput
-
On entry: , the number of rows of the matrix .
Constraint:
.
- 3:
n – IntegerInput
-
On entry:
, the number of columns of the matrix .
Constraint:
.
- 4:
k – IntegerInput
-
On entry: , the number of elementary reflectors whose product defines the matrix .
Constraint:
.
- 5:
a[] – doubleInput/Output
-
Note: the dimension,
dim, of the array
a
must be at least
- when
;
- when
.
On entry: details of the vectors which define the elementary reflectors, as returned by
nag_dgeqlf (f08cec).
On exit: the
by
matrix
.
If , the th element of the matrix is stored in .
If , the th element of the matrix is stored in .
- 6:
pda – IntegerInput
-
On entry: the stride separating row or column elements (depending on the value of
order) in the array
a.
Constraints:
- if ,
;
- if , .
- 7:
tau[] – const doubleInput
-
Note: the dimension,
dim, of the array
tau
must be at least
.
On entry: further details of the elementary reflectors as returned by
nag_dgeqlf (f08cec).
- 8:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
- NE_ALLOC_FAIL
Dynamic memory allocation failed.
- NE_BAD_PARAM
On entry, argument had an illegal value.
- NE_INT
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
- NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
7 Accuracy
The computed matrix
differs from an exactly orthogonal matrix by a matrix
such that
where
is the
machine precision.
The total number of floating point operations is approximately ; when , the number is approximately .
The complex analogue of this function is
nag_zungql (f08ctc).
9 Example
This example generates the first four columns of the matrix
of the
factorization of
as returned by
nag_dgeqlf (f08cec), where
9.1 Program Text
Program Text (f08cfce.c)
9.2 Program Data
Program Data (f08cfce.d)
9.3 Program Results
Program Results (f08cfce.r)