scipy.linalg.lapack.dorcsd#

scipy.linalg.lapack.dorcsd(x11, x12, x21, x22, compute_u1=1, compute_u2=1, compute_v1t=1, compute_v2t=1, trans=0, signs=0, lwork=..., overwrite_x11=0, overwrite_x12=0, overwrite_x21=0, overwrite_x22=0) = <flapack function dorcsd>#

CS decomposition of a partitioned orthogonal matrix (LAPACK dorcsd).

The matrix arrives as its four blocks and comes back transformed, alongside the angles theta and the four factors.

Parameters:
x11ndarray

Leading block, shape (p, q); it sets p and q.

x12ndarray

Upper right block, shape (p, m - q).

x21ndarray

Lower left block, shape (m - p, q).

x22ndarray

Trailing block, shape (m - p, m - q); with x11 it sets m.

compute_u1int, optional

If nonzero, u1 is computed. Default is 1.

compute_u2int, optional

If nonzero, u2 is computed. Default is 1.

compute_v1tint, optional

If nonzero, v1t is computed. Default is 1.

compute_v2tint, optional

If nonzero, v2t is computed. Default is 1.

transint, optional

If nonzero, the blocks are read row-major rather than column-major. Default is 0.

signsint, optional

If nonzero, the alternate sign convention is used. Default is 0.

lworkint, optional

Workspace size; -1 requests the query. Query it with dorcsd_lwork.

overwrite_x11, overwrite_x12, overwrite_x21, overwrite_x22int, optional

If nonzero, the matching block may be overwritten in place. Default is 0.

Returns:
cs11, cs12, cs21, cs22ndarray

The transformed blocks.

thetandarray

The CS angles, length min(p, m - p, q, m - q). Real for every flavor.

u1, u2, v1t, v2tndarray

The factors, each empty unless its compute_* flag was set.

infoint

0 on success; if negative, the -info-th argument had an illegal value.