Whether the pertinent array data is taken from the lower or upper
triangle of a. (Default: lower)

turbo : bool, optional

Use divide and conquer algorithm (faster but expensive in memory,
only for generalized eigenvalue problem and if eigvals=None)

eigvals : tuple (lo, hi), optional

Indexes of the smallest and largest (in ascending order) eigenvalues
and corresponding eigenvectors to be returned: 0 <= lo < hi <= M-1.
If omitted, all eigenvalues and eigenvectors are returned.

type : integer, optional

Specifies the problem type to be solved:

type = 1: a v[:,i] = w[i] b v[:,i]

type = 2: a b v[:,i] = w[i] v[:,i]

type = 3: b a v[:,i] = w[i] v[:,i]

overwrite_a : bool, optional

Whether to overwrite data in a (may improve performance)

overwrite_b : bool, optional

Whether to overwrite data in b (may improve performance)

check_finite : boolean, optional

Whether to check that the input matrices contain only finite numbers.
Disabling may give a performance gain, but may result in problems
(crashes, non-termination) if the inputs do contain infinities or NaNs.

Returns:

w : (N,) float ndarray

The N (1<=N<=M) selected eigenvalues, in ascending order, each
repeated according to its multiplicity.

Raises:

LinAlgError :

If eigenvalue computation does not converge,
an error occurred, or b matrix is not definite positive. Note that
if input matrices are not symmetric or hermitian, no error is reported
but results will be wrong.