nag_dorgtr (f08ffc) (PDF version)
f08 Chapter Contents
f08 Chapter Introduction
NAG C Library Manual
NAG Library Function Document
nag_dorgtr (f08ffc)
+
−
Contents
1
Purpose
2
Specification
3
Description
4
References
5
Arguments
6
Error Indicators and Warnings
7
Accuracy
8
Further Comments
+
−
9
Example
9.1
Program Text
9.2
Program Data
9.3
Program Results
1 Purpose
nag_dorgtr (f08ffc) generates the real orthogonal matrix
Q
, which was determined by
nag_dsytrd (f08fec)
when reducing a symmetric matrix to tridiagonal form.
2 Specification
#include <nag.h>
#include <nagf08.h>
void
nag_dorgtr (Nag_OrderType
order
, Nag_UploType
uplo
, Integer
n
, double
a
[], Integer
pda
, const double
tau
[], NagError *
fail
)
3 Description
nag_dorgtr (f08ffc) is intended to be used after a call to
nag_dsytrd (f08fec)
, which reduces a real symmetric matrix
A
to symmetric tridiagonal form
T
by an orthogonal similarity transformation:
A
=
Q
T
Q
T
.
nag_dsytrd (f08fec)
represents the orthogonal matrix
Q
as a product of
n
-
1
elementary reflectors.
This function may be used to generate
Q
explicitly as a square matrix.
4 References
Golub G H and Van Loan C F (1996)
Matrix Computations
(3rd Edition) Johns Hopkins University Press, Baltimore
5 Arguments
1:
order
–
Nag_OrderType
Input
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
order
=
Nag_RowMajor
. See
Section 3.2.1.3
in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint
:
order
=
Nag_RowMajor
or Nag_ColMajor.
2:
uplo
–
Nag_UploType
Input
On entry
: this
must
be the same argument
uplo
as supplied to
nag_dsytrd (f08fec)
.
Constraint
:
uplo
=
Nag_Upper
or
Nag_Lower
.
3:
n
–
Integer
Input
On entry
:
n
, the order of the matrix
Q
.
Constraint
:
n
≥
0
.
4:
a
[
dim
]
–
double
Input/Output
Note:
the dimension,
dim
, of the array
a
must be at least
max
1
,
pda
×
n
.
On entry
: details of the vectors which define the elementary reflectors, as returned by
nag_dsytrd (f08fec)
.
On exit
: the
n
by
n
orthogonal matrix
Q
.
If
order
=
Nag_ColMajor
, the
i
,
j
th element of the matrix is stored in
a
[
j
-
1
×
pda
+
i
-
1
]
.
If
order
=
Nag_RowMajor
, the
i
,
j
th element of the matrix is stored in
a
[
i
-
1
×
pda
+
j
-
1
]
.
5:
pda
–
Integer
Input
On entry
: the stride separating row or column elements (depending on the value of
order
) of the matrix
A
in the array
a
.
Constraint
:
pda
≥
max
1
,
n
.
6:
tau
[
dim
]
–
const double
Input
Note:
the dimension,
dim
, of the array
tau
must be at least
max
1
,
n
-
1
.
On entry
: further details of the elementary reflectors, as returned by
nag_dsytrd (f08fec)
.
7:
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
value
had an illegal value.
NE_INT
On entry,
n
=
value
.
Constraint:
n
≥
0
.
On entry,
pda
=
value
.
Constraint:
pda
>
0
.
NE_INT_2
On entry,
pda
=
value
and
n
=
value
.
Constraint:
pda
≥
max
1
,
n
.
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
Q
differs from an exactly orthogonal matrix by a matrix
E
such that
E
2
=
O
ε
,
where
ε
is the
machine precision
.
8 Further Comments
The total number of floating point operations is approximately
4
3
n
3
.
The complex analogue of this function is
nag_zungtr (f08ftc)
.
9 Example
This example computes all the eigenvalues and eigenvectors of the matrix
A
, where
A
=
2.07
3.87
4.20
-
1.15
3.87
-
0.21
1.87
0.63
4.20
1.87
1.15
2.06
-
1.15
0.63
2.06
-
1.81
.
Here
A
is symmetric and must first be reduced to tridiagonal form by
nag_dsytrd (f08fec)
. The program then calls nag_dorgtr (f08ffc) to form
Q
, and passes this matrix to
nag_dsteqr (f08jec)
which computes the eigenvalues and eigenvectors of
A
.
9.1 Program Text
Program Text (f08ffce.c)
9.2 Program Data
Program Data (f08ffce.d)
9.3 Program Results
Program Results (f08ffce.r)
nag_dorgtr (f08ffc) (PDF version)
f08 Chapter Contents
f08 Chapter Introduction
NAG C Library Manual
© The Numerical Algorithms Group Ltd, Oxford, UK. 2012