|
NAG[f01rdc] NAG[nag_complex_apply_q] - Compute or after factorization by f01rcc (nag_complex_qr)
|
|
Calling Sequence
f01rdc(trans, wheret, a, b, 'm'=m, 'n'=n, 'tda'=tda, 'theta'=theta, 'ncolb'=ncolb, 'tdb'=tdb, 'fail'=fail)
nag_complex_apply_q(. . .)
Parameters
|
trans - String;
|
|
|
On entry: the operation to be performed as follows:
|
|
, perform the operation .
|
|
, perform the operation .
|
|
Constraint: trans must be one of "NoTranspose" or "ConjugateTranspose". .
|
|
|
wheret - String;
|
|
|
On entry: the elements of are to be found as follows:
|
|
Constraint: wheret must be one of "Nag_ElementsIn" or "Nag_ElementsSeparate". .
|
|
|
a - Matrix(1..m, 1..tda, datatype=complex[8], order=C_order);
|
|
|
|
b - Matrix(1..m, 1..tdb, datatype=complex[8], order=C_order);
|
|
|
On entry: the leading by part of the array b must contain the matrix to be transformed.
|
|
On exit: b is overwritten by the transformed matrix.
|
|
|
'm'=m - integer; (optional)
|
|
|
Default value: the first dimension of the arrays a, b.
|
|
On entry: , the number of rows of .
|
|
Constraint: . .
|
|
|
'n'=n - integer; (optional)
|
|
|
Default value: the first dimension of the array theta and the second dimension of the array thetathe array a.
|
|
On entry: , the number of columns of .
|
|
When then an immediate return is effected.
|
|
Constraint: . .
|
|
|
'tda'=tda - integer; (optional)
|
|
|
On entry: the second dimension of the array a as declared in the function from which nag_complex_apply_q (f01rdc) 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.
|
|
|
'ncolb'=ncolb - integer; (optional)
|
|
|
Default value: the second dimension of the array b.
|
|
On entry: , the number of columns of .
|
|
When then an immediate return is effected.
|
|
Constraint: . .
|
|
|
'tdb'=tdb - integer; (optional)
|
|
|
On entry: the second dimension of the array b as declared in the function from which nag_complex_apply_q (f01rdc) is called.
|
|
Constraint: . .
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Purpose
|
|
nag_complex_apply_q (f01rdc) performs one of the transformations
where is an by complex matrix and is an by unitary matrix, given as the product of Householder transformation matrices.
This function is intended for use following f01rcc (nag_complex_qr).
|
|
Error Indicators and Warnings
|
|
"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 trans had an illegal value.
"NE_INT_ARG_LT"
On entry, n must not be less than 0: .
|
|
Further Comments
|
|
The approximate number of real floating-point operations is given by .
|
|
|
Examples
|
|
>
|
trans := "ConjugateTranspose":
wheret := "Nag_ElementsSeparate":
m := 5:
n := 3:
tda := 3:
ncolb := 2:
tdb := 2:
a := Matrix([[1 +0*I , 1 +1*I , 1 +1*I ], [-0.2 -0.4*I , -2 +0*I , -0.9999999999999999 -1*I ], [-0.3200000000000001 -0.16*I , -0.3505424368033064 +0.2629068276024798*I , -3 +0*I ], [-0.4 +0.2*I , -4.106415728288848e-18 +0.5477225575051662*I , 1.304276919275117e-17 +3.04997943335419e-17*I ], [-0.12 +0.24*I , 0.1971801207018598 +0.2629068276024797*I , 1.303205497928506e-17 +0.6324555320336759*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]):
b := Matrix([[-0.55 +1.05*I , 0.45 +1.05*I ], [0.49 +0.93*I , 1.09 +0.13*I ], [0.5600000000000001 -0.16*I , 0.64 +0.16*I ], [0.39 +0.23*I , -0.39 -0.23*I ], [1.13 +0.83*I , -1.13 +0.77*I ]], datatype=complex[8], order='C_order'):
NAG:-f01rdc(trans, wheret, a, b, 'm' = m, 'n' = n, 'tda' = tda, 'theta' = theta, 'ncolb' = ncolb, 'tdb' = tdb):
|
|
|