# naginterfaces.library.lapackeig.ztgsja¶

naginterfaces.library.lapackeig.ztgsja(jobu, jobv, jobq, k, l, a, b, tola, tolb, u, v, q)[source]

ztgsja computes the generalized singular value decomposition (GSVD) of two complex upper trapezoidal matrices and , where is an matrix and is a matrix.

and are assumed to be in the form returned by zggsvp3().

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

https://www.nag.com/numeric/nl/nagdoc_28.6/flhtml/f08/f08ysf.html

Parameters
jobustr, length 1

If , must contain a unitary matrix on entry, and the product is returned.

If , is initialized to the unit matrix, and the unitary matrix is returned.

If , is not computed.

jobvstr, length 1

If , must contain a unitary matrix on entry, and the product is returned.

If , is initialized to the unit matrix, and the unitary matrix is returned.

If , is not computed.

jobqstr, length 1

If , must contain a unitary matrix on entry, and the product is returned.

If , is initialized to the unit matrix, and the unitary matrix is returned.

If , is not computed.

kint

and specify the sizes, and , of the subblocks of and , whose GSVD is to be computed by ztgsja.

lint

and specify the sizes, and , of the subblocks of and , whose GSVD is to be computed by ztgsja.

acomplex, array-like, shape

The matrix .

bcomplex, array-like, shape

The matrix .

tolafloat

and are the convergence criteria for the Jacobi–Kogbetliantz iteration procedure. Generally, they should be the same as used in the preprocessing step performed by zggsvp3(), say

where is the machine precision.

tolbfloat

and are the convergence criteria for the Jacobi–Kogbetliantz iteration procedure. Generally, they should be the same as used in the preprocessing step performed by zggsvp3(), say

where is the machine precision.

ucomplex, array-like, shape

Note: the required extent for this argument in dimension 1 is determined as follows: if : ; otherwise: .

Note: the required extent for this argument in dimension 2 is determined as follows: if : ; otherwise: .

If , must contain an matrix (usually the unitary matrix returned by zggsvp3()).

vcomplex, array-like, shape

Note: the required extent for this argument in dimension 1 is determined as follows: if : ; otherwise: .

Note: the required extent for this argument in dimension 2 is determined as follows: if : ; otherwise: .

If , must contain an matrix (usually the unitary matrix returned by zggsvp3()).

qcomplex, array-like, shape

Note: the required extent for this argument in dimension 1 is determined as follows: if : ; otherwise: .

Note: the required extent for this argument in dimension 2 is determined as follows: if : ; otherwise: .

If , must contain an matrix (usually the unitary matrix returned by zggsvp3()).

Returns
acomplex, ndarray, shape

If , contains the upper triangular matrix .

If , contains the first rows of the upper triangular matrix , and the submatrix is returned in .

bcomplex, ndarray, shape

If , contains the submatrix of .

alphafloat, ndarray, shape

See the description of .

betafloat, ndarray, shape

and contain the generalized singular value pairs of and ;

, , for , and

if , , , for , or

if , , , for and , , for .

Furthermore, if , , for .

ucomplex, ndarray, shape

If , contains the product .

If , contains the unitary matrix .

If , is not referenced.

vcomplex, ndarray, shape

If , contains the unitary matrix .

If , contains the product .

If , is not referenced.

qcomplex, ndarray, shape

If , contains the unitary matrix .

If , contains the product .

If , is not referenced.

ncycleint

The number of cycles required for convergence.

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: , or .

(errno )

On entry, error in parameter .

Constraint: , or .

(errno )

On entry, error in parameter .

Constraint: , or .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

The procedure does not converge after cycles.

Notes

ztgsja computes the GSVD of the matrices and which are assumed to have the form as returned by zggsvp3()

where the matrix and the matrix are nonsingular upper triangular, is upper triangular if and is upper trapezoidal otherwise.

ztgsja computes unitary matrices , and , diagonal matrices and , and an upper triangular matrix such that

Optionally , and may or may not be computed, or they may be premultiplied by matrices , and respectively.

If then , and have the form

where .

If then , and have the form

where .

In both cases the diagonal matrix has real non-negative diagonal elements, the diagonal matrix has real positive diagonal elements, so that is nonsingular, and . See Section 2.3.5.3 of Anderson et al. (1999) for further information.

References

Anderson, E, Bai, Z, Bischof, C, Blackford, S, Demmel, J, Dongarra, J J, Du Croz, J J, Greenbaum, A, Hammarling, S, McKenney, A and Sorensen, D, 1999, LAPACK Users’ Guide, (3rd Edition), SIAM, Philadelphia, https://www.netlib.org/lapack/lug

Golub, G H and Van Loan, C F, 1996, Matrix Computations, (3rd Edition), Johns Hopkins University Press, Baltimore