|
NAG[f08kuc] NAG[nag_zunmbr] - Apply unitary transformations from reduction to bidiagonal form determined by f08ksc (nag_zgebrd)
|
|
Calling Sequence
f08kuc(vect, side, trans, k, a, tau, c, 'm'=m, 'n'=n, 'fail'=fail)
nag_zunmbr(. . .)
Parameters
|
vect - String;
|
|
|
Constraint: "Nag_ApplyQ" or "Nag_ApplyP". .
|
|
|
side - String;
|
|
|
Constraint: "Nag_LeftSide" or "Nag_RightSide". .
|
|
|
trans - String;
|
|
|
Constraint: "Nag_NoTrans" or "Nag_ConjTrans". .
|
|
|
k - integer;
|
|
|
On entry: if , the number of columns in the original matrix .
|
|
If , the number of rows in the original matrix .
|
|
Constraint: . .
|
|
|
a - Matrix(1..dim1, 1..dim2, datatype=complex[8], order=order);
|
|
|
Note: this array may be supplied in Fortran_order or C_order , as specified by order. All array parameters must use a consistent order.
|
|
On entry: details of the vectors which define the elementary reflectors, as returned by f08ksc (nag_zgebrd).
|
|
|
tau - Vector(1..dim, datatype=complex[8]);
|
|
|
Note: the dimension, dim, of the array tau must be at least .
|
|
On entry: further details of the elementary reflectors, as returned by f08ksc (nag_zgebrd) in its argument tauq if , or in its argument taup if .
|
|
|
c - Matrix(1..dim1, 1..dim2, datatype=complex[8], order=order);
|
|
|
Note: this array may be supplied in Fortran_order or C_order , as specified by order. All array parameters must use a consistent order.
|
|
On entry: the matrix .
|
|
|
'm'=m - integer; (optional)
|
|
|
Default value: the first dimension of the array c.
|
|
On entry: , the number of rows of the matrix .
|
|
Constraint: . .
|
|
|
'n'=n - integer; (optional)
|
|
|
Default value: the second dimension of the array c.
|
|
On entry: , the number of columns of the matrix .
|
|
Constraint: . .
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Description
|
|
nag_zunmbr (f08kuc) is intended to be used after a call to f08ksc (nag_zgebrd), which reduces a complex rectangular matrix to real bidiagonal form by a unitary transformation: . f08ksc (nag_zgebrd) represents the matrices and as products of elementary reflectors.
This function may be used to form one of the matrix products
overwriting the result on (which may be any complex rectangular matrix).
|
|
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: .
On entry, . 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 consult NAG for assistance.
|
|
Accuracy
|
|
The computed result differs from the exact result by a matrix such that
where is the machine precision.
|
|
Further Comments
|
|
The total number of real floating-point operations is approximately
where is the value of the argument k.
The real analogue of this function is f08kgc (nag_dormbr).
|
|
|
Examples
|
|
>
|
vect := "Nag_FormQ":
side := "Nag_RightSide":
trans := "Nag_NoTrans":
m := 6:
n := 4:
k := 4:
a := Matrix([[-3.087005021051958 +0*I , 2.112571007455839 +0*I , 0.05433411079440317 +0.4543118496773521*I , 0.375743827925403 +0.1070087304094523*I ], [0 +0*I , -2.066039276679068 +0*I , -1.262810106655224 +0*I , 0.02827717828732727 +0.1650056103049371*I ], [0 +0*I , -0.2804787991136918 -0.4124461074713914*I , -1.873128891125712 +0*I , 1.612633872800391 +0*I ], [0 +0*I , 0.2103472372638731 -0.4460760994276615*I , -0.5708419424841377 +0.06437446295221667*I , -2.002182866206991 +0*I ]], datatype=complex[8]):
tau := Vector([0 +0*I, 1.098198238126112 +0.5158162160396564*I, 1.455158088337053 -0.2659229774958435*I, 1.989879752802885 -0.1419086853962771*I], datatype=complex[8]):
c := Matrix([[-0.3109810296560065 +0.2623902437722555*I , -0.3175341445023599 +0.4834967063433274*I , 0.4966143187964562 -0.299683439908111*I , -0.007195817944538137 -0.3717893210480535*I ], [0.3174598011071733 -0.6413983736655134*I , -0.2061862718385913 +0.1576964755255178*I , -0.07925902434510128 -0.3093749483233558*I , -0.02816166060051147 -0.1491467515264785*I ], [-0.2008419149861708 +0.1490117433768365*I , 0.4891881009599057 -0.09002535062431441*I , 0.03574570760596603 -0.02190382125352534*I , 0.5624615849142622 -0.07099355406423365*I ], [0.1198572718465858 -0.1230966575721692*I , 0.2566010661168246 -0.3055384784364648*I , 0.4488646004434154 -0.2140825016792581*I , -0.1651301691537539 +0.1799762380267428*I ], [-0.2688690152234223 -0.1652086720047534*I , 0.1696708265434811 -0.2490702105456178*I , -0.04956098112958133 +0.1157544723073297*I , -0.4885201864374399 -0.4540377976759433*I ], [-0.3498536583630073 +0.09070280031633524*I , -0.04910433405863796 -0.3133356336974162*I , -0.1256478989223874 -0.5299605073526114*I , 0.1039065872268565 +0.04496306210314518*I ]], datatype=complex[8]):
NAG:-f08kuc(vect, side, trans, k, a, tau, c, 'm' = m, 'n' = n):
|


|
|