scipy.linalg.lapack.strsen#

scipy.linalg.lapack.strsen(select, t, q, job='B', wantq=1, lwork=max(1, n), liwork=1, overwrite_t=0, overwrite_q=0) = <flapack function strsen>#

Reorder a Schur decomposition to gather selected eigenvalues into a leading cluster (LAPACK strsen).

Parameters:
selectndarray

Boolean mask of length n: the eigenvalues it marks are gathered into the leading block. A bool array works; LAPACK reads it as a Fortran LOGICAL.

tndarray

Upper (quasi-)triangular Schur form of shape (n, n).

qndarray

Matrix of Schur vectors; updated when wantq is nonzero.

jobstr, optional

What to compute besides the reordering: 'N' nothing, 'E' the cluster condition number s, 'V' the separation sep, 'B' both. Default is 'B'.

wantqint, optional

If nonzero, the transformation is accumulated into q. Default is 1.

lworkint, optional

Workspace size; -1 requests the query. Default is max(1, n). The default is a bare minimum for the cheapest job only – what is actually needed depends on the cluster size, so query the matching _lwork routine.

liworkint, optional

Integer workspace size; -1 requests the query. Default is 1. The complex flavors have no integer workspace and take no liwork.

overwrite_tint, optional

If nonzero, t may be overwritten in place. Default is 0.

overwrite_qint, optional

If nonzero, q may be overwritten in place. Default is 0.

Returns:
tsndarray

The reordered Schur form.

qsndarray

The updated Schur vectors.

wrndarray

Real parts of the reordered eigenvalues, length n.

windarray

Imaginary parts of the reordered eigenvalues, length n.

mint

Size of the selected cluster.

sfloat

Condition number of the selected cluster; 0 unless job asked for it.

sepfloat

Separation of the cluster; 0 unless job asked for it.

infoint

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