naginterfaces.library.lapackeig.zuncsd¶
- naginterfaces.library.lapackeig.zuncsd(m, p, q, x11, x12, x21, x22, jobu1='Y', jobu2='Y', jobv1t='Y', jobv2t='Y', trans='N', signs='D')[source]¶
zuncsd
computes the CS decomposition of a complex unitary matrix , partitioned into a array of submatrices.For full information please refer to the NAG Library document for f08rn
https://support.nag.com/numeric/nl/nagdoc_30.2/flhtml/f08/f08rnf.html
- Parameters
- mint
, the number of rows and columns in the unitary matrix .
- pint
, the number of rows in and .
- qint
, the number of columns in and .
- x11complex, 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: .
The upper left partition of the unitary matrix whose CSD is desired.
- x12complex, 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: .
The upper right partition of the unitary matrix whose CSD is desired.
- x21complex, 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: .
The lower left partition of the unitary matrix whose CSD is desired.
- x22complex, 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: .
The lower right partition of the unitary matrix CSD is desired.
- jobu1str, length 1, optional
If , is computed;
otherwise, is not computed.
- jobu2str, length 1, optional
If , is computed;
otherwise, is not computed.
- jobv1tstr, length 1, optional
If , is computed;
otherwise, is not computed.
- jobv2tstr, length 1, optional
If , is computed;
otherwise, is not computed.
- transstr, length 1, optional
If , , , , and are stored in row-major order;
otherwise, , , , and are stored in column-major order.
- signsstr, length 1, optional
If , the lower-left block is made nonpositive (the other convention);
otherwise, the upper-right block is made nonpositive (the default convention).
- Returns
- x11complex, ndarray, shape
Contains details of the unitary matrix used in a simultaneous bidiagonalization process.
- x12complex, ndarray, shape
Contains details of the unitary matrix used in a simultaneous bidiagonalization process.
- x21complex, ndarray, shape
Contains details of the unitary matrix used in a simultaneous bidiagonalization process.
- x22complex, ndarray, shape
Contains details of the unitary matrix used in a simultaneous bidiagonalization process.
- thetafloat, ndarray, shape
The values for where . The diagonal submatrices and of are constructed from these values as
and
.
- u1None or complex, ndarray, shape
If , contains the unitary matrix .
- u2None or complex, ndarray, shape
If , contains the unitary matrix .
- v1tNone or complex, ndarray, shape
If , contains the unitary matrix .
- v2tNone or complex, ndarray, shape
If , contains the unitary matrix .
- Raises
- NagValueError
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
The Jacobi-type procedure failed to converge during an internal reduction to bidiagonal-block form. The process requires convergence to values, the value of gives the number of converged values.
- Notes
The unitary matrix is partitioned as
where is a submatrix and the dimensions of the other submatrices , and are such that remains .
The CS decomposition of is where , and are matrices, such that
is a unitary matrix containing the unitary matrix and the unitary matrix ;
is a unitary matrix containing the unitary matrix and the unitary matrix ; and
contains the non-negative diagonal submatrices and satisfying , where and the top left partition is .
The identity matrix is of order and vanishes if .
The identity matrix is of order and vanishes if .
The identity matrix is of order and vanishes if .
The identity matrix is of order and vanishes if .
In each of the four cases at least two of the identity matrices vanish.
The indicated zeros represent augmentations by additional rows or columns (but not both) to the square diagonal matrices formed by and or .
does not need to be stored in full; it is sufficient to return only the values for where and .
The algorithm used to perform the complete decomposition is described fully in Sutton (2009) including discussions of the stability and accuracy of the algorithm.
- 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, 2012, Matrix Computations, (4th Edition), Johns Hopkins University Press, Baltimore
Sutton, B D, 2009, Computing the complete decomposition, Numerical Algorithms (Volume 50) (1017–1398), Springer US, 33–65, https://dx.doi.org/10.1007/s11075-008-9215-6