|
NAG[f01rec] NAG[nag_complex_form_q] - Form columns of after factorization by f01rcc (nag_complex_qr)
|
|
Calling Sequence
f01rec(wheret, ncolq, a, 'm'=m, 'n'=n, 'tda'=tda, 'theta'=theta, 'fail'=fail)
nag_complex_form_q(. . .)
Parameters
|
wheret - String;
|
|
|
On entry: the elements of are to be found as follows:
|
|
Constraint: wheret must be one of "Nag_ElementsIn" or "Nag_ElementsSeparate". .
|
|
|
ncolq - integer;
|
|
|
On entry: , the required number of columns of .
|
|
When then an immediate return is effected.
|
|
Constraint: . .
|
|
|
a - Matrix(1..m, 1..tda, datatype=complex[8], order=C_order);
|
|
|
|
'm'=m - integer; (optional)
|
|
|
Default value: the first dimension of the array a.
|
|
On entry: , the number of rows of .
|
|
Constraint: . .
|
|
|
'n'=n - integer; (optional)
|
|
|
Default value: the first dimension of the array theta.
|
|
On entry: , the number of columns of .
|
|
Constraint: . .
|
|
|
'tda'=tda - integer; (optional)
|
|
|
On entry: the second dimension of the array a as declared in the function from which nag_complex_form_q (f01rec) is called.
|
|
Constraint: . .
|
|
|
'theta'=theta - Vector(1..n, datatype=complex[8]); (optional)
|
|
|
When , the array theta is not referenced and may be set to the null pointer, i.e., (Complex *)0.
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Error Indicators and Warnings
|
|
"NE_2_INT_ARG_GT"
On entry, while . These arguments must satisfy .
"NE_2_INT_ARG_LT"
On entry, while . These arguments must satisfy .
"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 must not be less than 0: .
|
|
Accuracy
|
|
The computed matrix satisfies the relation
where is an exactly unitary matrix and
being the machine precision, is a modest function of and denotes the spectral (two) norm. See also Section [Further Comments] of f01rcc (nag_complex_qr).
|
|
Further Comments
|
|
The approximate number of real floating-point operations required is given by
|
|
|
Examples
|
|
>
|
wheret := "Nag_ElementsSeparate":
m := 5:
n := 3:
ncolq := 5:
tda := 5:
a := Matrix([[1 +0*I , 1 +1*I , 1 +1*I , 0 +0*I , 0 +0*I ], [-0.2 -0.4*I , -2 +0*I , -0.9999999999999999 -1*I , 0 +0*I , 0 +0*I ], [-0.3200000000000001 -0.16*I , -0.3505424368033064 +0.2629068276024798*I , -3 +0*I , 0 +0*I , 0 +0*I ], [-0.4 +0.2*I , -4.106415728288848e-18 +0.5477225575051662*I , 1.304276919275117e-17 +3.04997943335419e-17*I , 0 +0*I , 0 +0*I ], [-0.12 +0.24*I , 0.1971801207018598 +0.2629068276024797*I , 1.303205497928506e-17 +0.6324555320336759*I , 0 +0*I , 0 +0*I ]], datatype=complex[8], order='C_order'):
theta := Vector([1 +0.5*I, 1.095445115010332 -0.3333333333333333*I, 1.264911064067352 -4.060111260505613e-18*I], datatype=complex[8]):
NAG:-f01rec(wheret, ncolq, a, 'm' = m, 'n' = n, 'tda' = tda, 'theta' = theta):
|

|
|