naginterfaces.library.blas.zutr1

naginterfaces.library.blas.zutr1(alpha, x, y, a)[source]

zutr1 performs a factorization (as a sequence of plane rotations) of a complex upper triangular matrix that has been modified by a rank-1 update.

For full information please refer to the NAG Library document for f06tp

https://support.nag.com/numeric/nl/nagdoc_30.2/flhtml/f06/f06tpf.html

Parameters
alphacomplex

The scalar .

xcomplex, array-like, shape

The -element vector .

ycomplex, array-like, shape

The -element vector .

acomplex, array-like, shape

The upper triangular matrix . The imaginary parts of the diagonal elements must be zero.

Returns
xcomplex, ndarray, shape

The referenced elements are overwritten by details of the sequence of plane rotations.

acomplex, ndarray, shape

The upper triangular matrix . The imaginary parts of the diagonal elements must be zero.

cfloat, ndarray, shape

The cosines of the rotations , for .

scomplex, ndarray, shape

The sines of the rotations , for ; holds , the th diagonal element of .

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

Notes

No equivalent traditional C interface for this routine exists in the NAG Library.

zutr1 performs a factorization of an upper triangular matrix which has been modified by a rank-1 update:

where and are complex upper triangular matrices with real diagonal elements, and are -element complex vectors, is a complex scalar, and is an complex unitary matrix.

is formed as the product of two sequences of plane rotations and a unitary diagonal matrix :

where

is a rotation in the plane, chosen to annihilate : thus , where and is the last column of the unit matrix;

is a rotation in the plane, chosen to annihilate the element of , and thus restore it to upper triangular form;

, with chosen to make real; .

The plane rotation part of or has the form

with real. The tangents of the rotations are returned in the array ; the cosines and sines of these rotations can be recovered by calling dcsg(). The cosines and sines of the rotations are returned directly in the arrays and .