nag_real_form_q (f01qec) (PDF version)
f01 Chapter Contents
f01 Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_real_form_q (f01qec)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_real_form_q (f01qec) returns the first ncolq  columns of the real m  by m  orthogonal matrix Q , where Q  is given as the product of Householder transformation matrices. This function is intended for use following nag_real_qr (f01qcc).

2  Specification

#include <nag.h>
#include <nagf01.h>
void  nag_real_form_q (Nag_WhereElements wheret, Integer m, Integer n, Integer ncolq, double a[], Integer tda, const double zeta[], NagError *fail)

3  Description

Q  is assumed to be given by
Q = Q n Q n-1 Q 1 T ,
Q k  being given in the form
Q k = I 0 0 T k
where
T k = I - u k ukT
u k = ζ k z k ,
ζ k  is a scalar and z k  is an m-k  element vector. z k  must be supplied in the k-1 th column of a in elements a[k×tda+k-1] , , a[m-1×tda+k-1]  and ζ k  must be supplied either in a[k-1×tda+k-1]  or in zeta[k-1] , depending upon the argument wheret.

4  References

Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
Wilkinson J H (1965) The Algebraic Eigenvalue Problem Oxford University Press, Oxford

5  Arguments

1:     wheretNag_WhereElementsInput
On entry: indicates where the elements of ζ  are to be found as follows:
  • wheret=Nag_ElementsIn, the elements of ζ  are in a.
  • wheret=Nag_ElementsSeparate, the elements of ζ  are separate from a, in zeta.
Constraint: wheret must be Nag_ElementsIn or Nag_ElementsSeparate.
2:     mIntegerInput
On entry: n , the number of rows of A .
Constraint: mn .
3:     nIntegerInput
On entry: n , the number of columns of A .
Constraint: n0 .
4:     ncolqIntegerInput
On entry: ncolq , the required number of columns of Q . When ncolq=0  then an immediate return is effected.
Constraint: 0 ncolq m .
5:     a[m×tda]doubleInput/Output
On entry: the leading m  by n  strictly lower triangular part of the array a must contain details of the matrix Q . In addition, when wheret=Nag_ElementsIn, then the diagonal elements of a must contain the elements of ζ  as described under the argument zeta.
On exit: the first ncolq columns of the array a are overwritten by the first ncolq columns of the m  by m  orthogonal matrix Q . When n=0  then the first ncolq columns of a are overwritten by the first ncolq columns of the identity matrix.
6:     tdaIntegerInput
On entry: the stride separating matrix column elements in the array a.
Constraint: tda maxn,ncolq .
7:     zeta[n]const doubleInput
On entry: if wheret=Nag_ElementsSeparate, the array zeta must contain the elements of ζ . If zeta[k-1] = 0.0  then T k  is assumed to be I  otherwise zeta[k-1]  is assumed to contain ζ k . When wheret=Nag_ElementsIn, zeta is not referenced and may be set to the null pointer, i.e., (double *)0.
8:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_2_INT_ARG_GT
On entry, ncolq=value  while m=value . These arguments must satisfy ncolqm .
NE_2_INT_ARG_LT
On entry, m=value  while n=value . These arguments must satisfy mn .
On entry, tda=value  while maxn,ncolq = value. These arguments must satisfy tda maxn,ncolq .
NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_BAD_PARAM
On entry, argument wheret had an illegal value.
NE_INT_ARG_LT
On entry, n=value.
Constraint: n0.
On entry, ncolq=value.
Constraint: ncolq0.

7  Accuracy

The computed matrix Q  satisfies the relation
Q = P + E
where P  is an exactly orthogonal matrix and E c ε , ε  is the machine precision, c  is a modest function of m  and .  denotes the spectral (two) norm. See also Section 8.

8  Further Comments

The approximate number of floating point operations required is given by
2 3 n 3 m - n 2 ncolq - n - n ncolq - n ncolq > n 2 3 ncolq 2 3 m - ncolq ncolq n .

9  Example

To obtain the 5 by 5 orthogonal matrix Q  following the QR  factorization of the 5 by 3 matrix A  given by
A = 2.0 -2.5 -2.5 2.0 -2.5 -2.5 1.6 -0.4 -2.8 2.0 -0.5 -0.5 1.2 -0.3 -2.9 .

9.1  Program Text

Program Text (f01qece.c)

9.2  Program Data

Program Data (f01qece.d)

9.3  Program Results

Program Results (f01qece.r)


nag_real_form_q (f01qec) (PDF version)
f01 Chapter Contents
f01 Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012