File: //usr/lib/python3/dist-packages/numpy/linalg/__pycache__/linalg.cpython-310.pyc
o
6��a^ � @ s@ d Z g d�ZddlZddlZddlZddlmZmZmZm Z m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddlm4Z4 ddl5m6Z6m7Z7 dd l8m9Z9m:Z: ej;e4j<d
d�Z<eZ=e3d
�G dd
� d
e>��Z?dd� Z@e@� ZA[@dd� ZBdd� ZCdd� ZDdd� ZEdd� ZFdd� ZGdd� ZHdd� ZIeee
e
eeee
iZJeee
eeeeeiZKe
fd d!�ZLefd"d#�ZMd$d%� ZNd&d'� ZOeZPd(d)� ZQd*d+� ZRd,d-� ZSd.d/� ZTd0d1� ZUd2d3� ZVd4d5� ZWd6d7� ZXd�d8d9�ZYe<eY�d�d:d;��ZZd<d=� Z[e<e[�d>d?� �Z\d�d@dA�Z]e<e]�d�dCdD��Z^dEdF� Z_e<e_�dGdH� �Z`dIdJ� Zae<ea�dKdL� �Zbe<e_�dMdN� �Zcd�dOdP�Zde<ed�d�dRdS��Zee<e_�dTdU� �Zfd�dVdW�Zge<eg�d�dYdZ��Zhd[d\� Zie<e_�d]d^� �Zje<eg�d�d_d`��Zkd�dadb�Zle<el�d�dedf��Zmd�dgdh�Zne<en�d�didj��Zod�dkdl�Zpe<ep�d�dmdn��Zqd�dodp�Zre<er�d�drds��Zse<e_�dtdu� �Zte<e_�dvdw� �Zud�dxdy�Zve<ev�d�d{d|��Zwd}d~� Zxd�dd��Zye<ey�d�d�d���Zzdd��d�d��Z{e<e{�dd��d�d���Z|d�d�d��Z}d�d�d��Z~d�d�d��ZdS )�ax Lite version of scipy.linalg.
Notes
-----
This module is a lite version of the linalg.py module in SciPy which
contains high-level Python interface to the LAPACK library. The lite
version only accesses the following LAPACK functions: dgesv, zgesv,
dgeev, zgeev, dgesdd, zgesdd, dgelsd, zgelsd, dsyevd, zheevd, dgetrf,
zgetrf, dpotrf, zpotrf, dgeqrf, zgeqrf, zungqr, dorgqr.
)�matrix_power�solve�tensorsolve� tensorinv�inv�cholesky�eigvals�eigvalsh�pinv�slogdet�det�svd�eig�eigh�lstsq�norm�qr�cond�matrix_rank�LinAlgError� multi_dot� N)*�array�asarray�zeros�empty�
empty_like�intc�single�double�csingle�cdouble�inexact�complexfloating�newaxis�all�Inf�dot�add�multiply�sqrt�fastCopyAndTranspose�sum�isfinite�finfo�errstate� geterrobj�moveaxis�amin�amax�product�abs�
atleast_2d�intp�
asanyarray�object_�matmul�swapaxes�divide�
count_nonzero�isnan�sign�argsort�sort)�normalize_axis_index)�
set_module)� overrides)�triu�eye)�lapack_lite�
_umath_linalgznumpy.linalg)�modulec @ s e Zd ZdZdS )r a
Generic Python-exception-derived object raised by linalg functions.
General purpose exception class, derived from Python's exception.Exception
class, programmatically raised in linalg functions when a Linear
Algebra-related condition would prevent further correct execution of the
function.
Parameters
----------
None
Examples
--------
>>> from numpy import linalg as LA
>>> LA.inv(np.zeros((2,2)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "...linalg.py", line 350,
in inv return wrap(solve(a, identity(a.shape[0], dtype=a.dtype)))
File "...linalg.py", line 249,
in solve
raise LinAlgError('Singular matrix')
numpy.linalg.LinAlgError: Singular matrix
N)�__name__�
__module__�__qualname__�__doc__� rM rM �5/usr/lib/python3/dist-packages/numpy/linalg/linalg.pyr + s r c C sR t � } | d }tddddd��
t � d }W d � n1 sw Y ||d gS )Nr �call�ignore)�invalid�overr; �under� )r/ r. )�errobj�bufsize�invalid_call_errmaskrM rM rN �_determine_error_statesI s ��
rX c C � t d��)NzSingular matrix�r ��err�flagrM rM rN �_raise_linalgerror_singularW � r^ c C rY )NzMatrix is not positive definiterZ r[ rM rM rN �_raise_linalgerror_nonposdefZ r_ r` c C rY )NzEigenvalues did not convergerZ r[ rM rM rN �-_raise_linalgerror_eigenvalues_nonconvergence] r_ ra c C rY )NzSVD did not convergerZ r[ rM rM rN �%_raise_linalgerror_svd_nonconvergence` r_ rb c C rY )Nz,SVD did not converge in Linear Least SquaresrZ r[ rM rM rN �_raise_linalgerror_lstsqc r_ rc c C s t t�}| |d<