403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/numpy/linalg/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/numpy/linalg/tests/__pycache__/test_linalg.cpython-312.pyc
�

	�g�N���dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z
ddl	mZmZm
Z
mZmZmZmZmZddlmZddlmZddl	mZmZmZmZddl	mZddlmZmZmZm Z m!Z!dd	l"m#Z#dd
l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.	ddl/Z	d�Z1e)Z2d�d�Z)d
�Z3d�Z4d�Z5hd�Z6Gd�d�Z7d�Z8e
jrjud�gZ;e;e8de7deddgddgge��eddge���e7deddgddgge
��eddge
���e7deddgddgge
��egd�gd�ge
���e7d ed!d"gd#d$gge��ed%d!ge���e7d&ed!d"gd#d$gge��ed%d!ge���e7d'ed!d"gd#d$gge��egd(�gd)�ge���e7d*e
jxd+e
��e
jxd,e
��d-h�.�e7d/e
jrj{d0d0�e
jrj{d0��e7d1e
jrj{d2d2�e
jrj{d2��e7d3d2d4gd5d6ggd4d2g�g
�z
Z;e;e8d7e7d8egd9�gd�ge��eddge���e7d:eddgddgd;d<gge��egd=�e���e7d>egd9�gd�ge
��eddge
���e7d?eddgddgd;d<gge
��egd=�e
���e7d@egdA�gdB�ge��ed%d!ge���e7dCedDdEgdFdGgdHdIgge��egdJ�e���e7dKegdA�gdB�ge��ed%d!ge���e7dLedDdEgdFdGgdHdIgge��egdJ�e���e7dMegdA�gdB�ge��ed%d!gdNdOgge���e7dPedDdEgdFdGgdHdIgge��ed%d!gdNdOgdNdOgge���e7dQe
jrj{d0dR�e
jrj{d0��e7dSe
jrj{d2dT�e
jrj{d2��e7dUe
jrj{dTd2�e
jrj{dT��e7dVe
jrj{dd6�e
jrj{d�d-h�.�e7dWe
jrj{d6d�e
jrj{d6�d-h�.�g�z
Z;e;e8dXe7dYeddgddgge��d�e7dZeddgddgge
��d�e7d[edd"gd\d2gge��d�e7d]edd"gd\d2gge��d�e7d^e
jxd+e
��dd-h�.�e7d_d2d4gd4d2ggd�e7d`eddgddgg�d�e7dae
jrj{d2d2�d�g�z
Z;db�Z>e;e>�z
Z;dc�Z?dd�Z@e;e@�z
Z;Gde�df�ZAGdg�dheA�ZBGdi�djeA�ZCGdk�dleA�ZDGdm�dneA�ZEGdo�dpeA�ZFGdq�dreA�ZGds�ZHGdt�dueBeE�ZIGdv�dweI�ZJGdx�dyeBeE�ZKGdz�d{eK�ZLGd|�d}eBeE�ZMGd~�deM�ZNGd��d�eBeE�ZOGd��d�eO�ZPGd��d��ZQGd��d�eBeE�ZRGd��d�eReQ�ZSGd��d�eDeG�ZTGd��d�eTeQ�ZUGd��d�eBeE�ZVGd��d�eV�ZWGd��d�eBeCeEeF�ZXGd��d�eX�ZYGd��d�eDeG�ZZGd��d�eZ�Z[d��Z\Gd��d�eBeE�Z]Gd��d�e]�Z^Gd��d�eBeC�Z_Gd��d�e_�Z`ej�j�d�d�D�cgc]}e
j�|���c}�Gd��d���ZdGd��d�eDeG�ZeGd��d��ZfGd��d�eDeG�ZgGd��d��ZhGd��d��ZiGd��d�ei�ZjGd��d�ei�ZkGd��d�ekej�ZlGd��d��ZmGd��d�ei�ZnGd��d�ei�ZoGd��d�ei�ZpGd��d�elen�ZqGd��d�eleo�ZrGdÄd�elep�ZsGdńdƫZtdDŽZuGdȄdɫZvGdʄd˫ZwGd̄dͫZxd΄Zyej�j�e.dϬЫdф�Z{ej�j�ej��d2kDdҬЫdӄ�Z}ej�j�e.dԬЫej�j�dՄ��ZGdքd׫Z�Gd؄d٫Z�Gdڄd۫Z�d܄Z�ej��j	dݬЫdބ�Z�ej��j
e-d߬Ыd��Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�y#e0$rY���wxYwcc}w)�z# Test functions for linalg module

�N)�array�single�double�csingle�cdouble�dot�identity�matmul)�swapaxes)�	AxisError)�multiply�
atleast_2d�inf�asarray)�linalg)�matrix_power�norm�matrix_rank�	multi_dot�LinAlgError)�_multi_dot_matrix_chain_order)
�assert_�assert_equal�
assert_raises�assert_array_equal�assert_almost_equal�assert_allclose�suppress_warnings�assert_raises_regex�HAS_LAPACK64�IS_WASMc��t|�t|tj�rt|�uStjuS�N)�type�
isinstance�np�ndarray)�out�in_s  �@C:\Python312\Lib\site-packages\numpy/linalg/tests/test_linalg.py�consistent_subclassr+#s9����9�j��b�j�j�&A��c��*�*� �j�j�*�*�c��t|�jjttfvr|}n|}t||fd|i|��y)N�decimal)r�dtyper$rr�old_assert_almost_equal)�a�b�single_decimal�double_decimal�kwr.s      r*rr-s=���q�z������� 1�1� �� ���A�q�8�'�8�R�8r,c�\�tttttttti|Sr#)rrrr�r/s r*�get_real_dtyper85s&���F�F�F��V�W�f�.�.3�5�5r,c�\�tttttttti|Sr#)rrrrr7s r*�get_complex_dtyper::s&���G�V�W��W�g�w�0�05�7�7r,c�"�|ttfvryy)Ng�h㈵��>g�dy���=)rrr7s r*�get_rtolr<?s�����!�!��r,>�square�strided�	hermitian�	nonsquare�generalized�size-0c�,�eZdZe�fd�Zd�Zd�Zy)�
LinalgCasec��tt|t��||_||_||_t
|�|_y)z�
        A bundle of arguments to be passed to a test case, with an identifying
        name, the operands a and b, and a set of tags to filter the tests
        N)rr%�str�namer1r2�	frozenset�tags)�selfrGr1r2rIs     r*�__init__zLinalgCase.__init__Os3��
	�
�4��%�&���	��������d�O��	r,c�V�||j|j|j��y)zN
        Run the function `do` on this test case, expanding arguments
        �rIN)r1r2rI)rJ�dos  r*�checkzLinalgCase.checkZs��	�4�6�6�4�6�6��	�	�*r,c�"�d|j�d�S)Nz
<LinalgCase: �>)rG�rJs r*�__repr__zLinalgCase.__repr__`s���t�y�y�k��+�+r,N)�__name__�
__module__�__qualname__�setrKrOrS�r,r*rDrDNs��(+��	$�+�,r,rDc�\�|tvsJd��|D]}|j|hz|_�|S)z^
    Add the given tag (a string) to each of the cases (a list of LinalgCase
    objects)
    zInvalid tag)�all_tagsrI)�tag�cases�cases   r*�	apply_tagr^ds;��
�(�?�)�M�)�?��&���I�I���%��	�&��Lr,��r=r��?�@�@�@r7r�double_2)rar`rc)rbrc�@r��?@y@@y@@y@@�@�?r�	cdouble_2)rgrfy�?@)y�?�y�?�y�?��0x0�rr�rrBrM�8x8��1x1��nonarray���r@�single_nsq_1)r`rarb�single_nsq_2g@re)rar`rb�double_nsq_1�double_nsq_2�
csingle_nsq_1)��?�?�@@�@�)y@�y@"@y@@�
csingle_nsq_2ryrzr{y@"�y@�y@ @)rgrfr{�
cdouble_nsq_1�
cdouble_nsq_2�cdouble_nsq_1_2y�?�y@��cdouble_nsq_2_2�8x11��1x5��5x1�0x4�4x0r?�hsingle�hdouble�hcsingley@��hcdouble�hempty�	hnonarray�
matrix_b_only�hmatrix_1x1c���g}tD�]k}t|jtj�s�)tj
|jd|jzd|jzg�}|j�d}nb|jjdk(r
|j}n<tj
|jd|jzd|jzg�}t|jdz|||jdhz��}|j|�tj
|jgdzdz�jd	|jjz�}|j�d}n�|jjdk(r`tj
|jgdzdz|jd
z�jd	|jjddz�}nLtj
|jgdzdz�jd	|jjz�}t|jdz|||jdhz��}|j|���n|S)
Nrqrrro���_tile3rArM�rrrq�������_tile213)�CASESr%r1r&r'rr2�ndimrDrGrI�append�reshape�shape)�	new_casesr]r1r2�new_cases     r*�_make_generalized_casesr��s����I��#���$�&�&�"�*�*�-���H�H�d�f�f�a�$�&�&�j�!�d�f�f�*�5�6���6�6�>��A�
�V�V�[�[�A�
����A����$�&�&�!�d�f�f�*�a�$�&�&�j�9�:�A��d�i�i�(�2�A�q�#'�9�9�
��#>�@������"��H�H�d�f�f�X��\�A�%�&�.�.�v������/D�E���6�6�>��A�
�V�V�[�[�A�
����$�&�&��A���)�A�G�G�B�K�7�8��7�6�D�F�F�L�L���$5�5�6�
����$�&�&��A���)�*�2�2�6�D�F�F�L�L�3H�I�A��d�i�i�*�4�a��#'�9�9�
��#>�@������"�3#�6�r,c#��K�t|tj�s|df��ydg|jz}d|d<|jdkDrd|d<|jdkDrd	|d
<t	j
t
|��D�]f}t|j|�D��cgc]\}}t||z���}}}t
|D�cgc]}tdd|���c}�}tj||j��}|jtj�jd�||}||d
<|j|j �}t#tj$||k(��|ddj'|D�	cgc]}	d|	z��	c}	�zf��|jdk\r]|jddk(rKt)|j*�}
d|
d<tj,j.j1||
��}|df��|jdk\r]|jddk(rKt)|j*�}
d|
d<tj,j.j1||
��}|df��|jdk\s��|jdddk(s��t)|j*�}
d|
d<d|
d<tj,j.j1||
��}|df����iycc}}wcc}wcc}	w�w)z<
    Generate cartesian product of strides for all axes
    �nopN�ro)rorr���r�ror�rq)ror����r7l�>[=.�stride_�_z%+dr)�strides�stride_xxx_0�stride_xxx_0_x�roro�stride_xxx_0_0)r%r&r'r��	itertools�product�tuple�zipr��abs�slice�emptyr/�view�uint32�fill�	__class__r�all�join�listr��lib�
stride_tricks�
as_strided)�x�
stride_set�repeatsr1r2�	new_shape�repeat�slices�xi�j�ss           r*�_stride_comb_iterr�s�����
�a����$���h�����!�&�&��J��J�r�N��v�v��z�#�
�2���v�v��z� �
�2���$�$�e�J�&7�8�'��,/�����,A�B�D�A�q�S��Q��Z�B�	�B���H�f��d�D�&�1�H�I���X�X�i�q�w�w�
/��
����	�	����
�+�
��Z����3��
�W�W�Q�[�[�
!������r�Q�w�� ��)�c�h�h�7�'C�a���	�'C�D�D�D�D�
�6�6�Q�;�1�7�7�2�;�!�+��Q�Y�Y��A��A�b�E����%�%�0�0��A�0�>�B��n�$�$��6�6�Q�;�1�7�7�2�;�!�+��Q�Y�Y��A��A�b�E����%�%�0�0��A�0�>�B��&�&�&��6�6�Q�;�1�7�7�3�B�<�6�1��Q�Y�Y��A��A�b�E��A�b�E����%�%�0�0��A�0�>�B��&�&�&�;'��B��H��(D�s9�BK7�K'�1K7�=K-
�B-K7�>K2�
C3K7�?K7�A$K7c
��g}tD]�}t|j�D]f\}}t|j�D]I\}}t	|j
dz|zdz|z|||jdhz��}|j|��K�h��|S)Nr�r>rM)r�r�r1r2rDrGrIr�)r�r]r1�a_labelr2�b_labelr�s       r*�_make_strided_casesr�Ks����I��+��+�D�F�F�3�	+�J�A�w�/����7�
+�
��7�%�d�i�i�#�o��&?�#�&E��&O�QR�TU�+/�9�9�	�{�+B�D��� � ��*�
+�	+�+��r,c�0�eZdZeZe�e�fd�Zy)�LinalgTestCasec��|jD]A}|j|z|k7r�|j|zr�&	|j|j��Cy#t$r.}d|�d�}|tj�z
}t|�|�d}~wwxYw)zx
        Run func on each of the cases with all of the tags in require, and none
        of the tags in exclude
        zIn test case: z

N)�
TEST_CASESrIrOrN�	Exception�	traceback�
format_exc�AssertionError)rJ�require�excluder]�e�msgs      r*�check_caseszLinalgTestCase.check_cases_s���
�O�O�	1�D��y�y�7�"�g�-���y�y�7�"��
1��
�
�4�7�7�#�	1���
1�&�t�h�d�3���y�+�+�-�-��$�S�)�q�0��
1�s�A�	B	�)B�B	N)rTrUrVr�r�rWr�rXr,r*r�r�\s���J�"%�%���1r,r�c��eZdZd�Zd�Zy)�LinalgSquareTestCasec�0�|jdhddh��y)Nr=rArB�r�r��r�rRs r*�
test_sq_casesz"LinalgSquareTestCase.test_sq_casesus!�����(��"/��!:�	�	<r,c�0�|jddhdh��y)Nr=rBrAr�r�rRs r*�test_empty_sq_casesz(LinalgSquareTestCase.test_empty_sq_casesys!�����(�H�!5�"/��	�	2r,N)rTrUrVr�r�rXr,r*r�r�s���<�2r,r�c��eZdZd�Zd�Zy)�LinalgNonsquareTestCasec�0�|jdhddh��y)Nr@rArBr�r�rRs r*�test_nonsq_casesz(LinalgNonsquareTestCase.test_nonsq_cases��!�����+��"/��!:�	�	<r,c�0�|jddhdh��y)Nr@rBrAr�r�rRs r*�test_empty_nonsq_casesz.LinalgNonsquareTestCase.test_empty_nonsq_cases��!�����+�x�!8�"/��	�	2r,N)rTrUrVr�r�rXr,r*r�r�~r�r,r�c��eZdZd�Zd�Zy)�HermitianTestCasec�0�|jdhddh��y)Nr?rArBr�r�rRs r*�test_herm_casesz!HermitianTestCase.test_herm_cases�r�r,c�0�|jddhdh��y)Nr?rBrAr�r�rRs r*�test_empty_herm_casesz'HermitianTestCase.test_empty_herm_cases�r�r,N)rTrUrVr�r�rXr,r*r�r��r�r,r�c�|�eZdZejj
d��Zejj
d��Zy)�LinalgGeneralizedSquareTestCasec�0�|jddhdh��y)NrAr=rBr�r�rRs r*�test_generalized_sq_casesz9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases�s!�����-��!:�"*��	�	-r,c�,�|jhd���y)N>r=rArB�r�r�rRs r*�test_generalized_empty_sq_casesz?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases�s�����!D��Er,N)rTrUrV�pytest�mark�slowr�r�rXr,r*r�r��s>���[�[���-��-��[�[���F��Fr,r�c�|�eZdZejj
d��Zejj
d��Zy)�"LinalgGeneralizedNonsquareTestCasec�0�|jddhdh��y)NrAr@rBr�r�rRs r*�test_generalized_nonsq_casesz?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases��!�����-��!=�"*��	�	-r,c�,�|jhd���y)N>r@rArBr�r�rRs r*�"test_generalized_empty_nonsq_caseszELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases�s�����!G��Hr,N)rTrUrVr�r�r�r�r�rXr,r*r�r��s>���[�[���-��-��[�[���I��Ir,r�c�|�eZdZejj
d��Zejj
d��Zy)�HermitianGeneralizedTestCasec�0�|jddhdh��y)NrAr?rBr�r�rRs r*�test_generalized_herm_casesz8HermitianGeneralizedTestCase.test_generalized_herm_cases�r�r,c�0�|jhd�dh��y)N>r?rArB�noner�r�rRs r*�!test_generalized_empty_herm_casesz>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases�s�����!G�"(��	�	+r,N)rTrUrVr�r�r�rrrXr,r*rr�s<���[�[���-��-��[�[���+��+r,rc��t|�}|jdk\rHtj|j|j
��}t
|jd�|d<|St
|jd�S)Nrrr7r�.r)rr�r&r�r�r/r	)r1�rs  r*�identity_like_generalizedr	�s\����
�A��v�v��{��H�H�Q�W�W�A�G�G�,���!�'�'�"�+�&��#���������
�#�#r,c��eZdZd�Zy)�
SolveCasesc�H�tj||�}tj|�jdk(r=t||d�d}t
tj||j�|�nt||�}t
||�tt||��y)Nro).N�.r)r�solver&rr�r
r�broadcast_tor�rr+)rJr1r2rIr��adotxs      r*rNz
SolveCases.do�s}���L�L��A���
�8�8�A�;���q� ��1�a�	�l�+�F�3�E������5�;�;� ?��G��1�a�L�E���5�)��#�A�q�)�*r,N�rTrUrVrNrXr,r*rr�s��
+r,rc�j�eZdZejjdeeee	g�d��Z
d�Zd�Zd�Z
y)�	TestSolver/c��tjddgddgg|��}ttj||�j
|�y�Nro��?r7)r&rrrrr/�rJr/r�s   r*�
test_typeszTestSolve.test_types�s:���H�H�q�#�h��a��)��7���V�\�\�!�Q�'�-�-�u�5r,c�v�Gd�dtj�}tjd�jddd�}tjd�j	|�}tj||�}|jdk(sJ�tjd�jdd�j	|�}tj||�}|jdk(sJ�tjd�jdd�j	|�}ttt
j||�y)	Nc��eZdZy)�)TestSolve.test_1_d.<locals>.ArraySubclassN�rTrUrVrXr,r*�
ArraySubclassr����r,rrmrq�rqrqrs)rqrqrqro)
r&r'�aranger�r�rrr�r�
ValueError)rJrr1r2�results     r*�test_1_dzTestSolve.test_1_d�s���	�B�J�J�	��I�I�a�L� � ��A�q�)���I�I�a�L���m�,�����a��#���|�|�v�%�%�%�
�I�I�a�L� � ��A�&�+�+�M�:�����a��#���|�|�y�(�(�(��I�I�a�L� � ��A�&�+�+�M�:���j�&�,�,��1�5r,c
��Gd�dtj�}tjd�jddd�}tjd�jddd�j	|�}tj||�dd�dd�dd�f}tj|dd�dd�dd�f|dd�dd�dd�f�}t||�tt||��tt
jt
j|dd�dd�dd�f|�ttt
j||dd�dd�dd�f�tjd�jddd�}ttt
j||�ttt
j|dd|dd�tjd�j	|�}tj||�dd�dd�f}tj|dd�dd�dd�f|dd�}t||�tt||��tjd�jdd�}ttt
j||�ttt
j|dd|dd�ttt
j|dd�dd�dd�f|�y)	Nc��eZdZy)�,TestSolve.test_0_size.<locals>.ArraySubclassNrrXr,r*rr&�rr,rrmrqr�rorrr)
r&r'r r�r�rrrrr%rrr!�rJrr1r2�expectedr"s      r*�test_0_sizezTestSolve.test_0_size�s?��	�B�J�J�	�
�I�I�a�L� � ��A�q�)���I�I�a�L� � ��A�q�)�.�.�}�=���<�<��1�%�a��1��a�i�0�����a��1�Q�3��!���n�a��1�Q�3��	�l�;���6�8�,��
�6�=�1�2�	�f�(�(�&�,�,��!�Q�q�S�!�A�#�+���J��j�&�,�,��1�Q��!��Q�Y�<�@�
�I�I�a�L� � ��A�q�)���j�&�,�,��1�5��j�&�,�,��!�A���!�A��?�
�I�I�a�L���m�,���<�<��1�%�a��1��f�-�����a��1�Q�3��!���n�a��!�f�5���6�8�,��
�6�=�1�2��I�I�a�L� � ��A�&���j�&�,�,��1�5��j�&�,�,��!�A���!�A��?��j�&�,�,��!�Q�q�S�!�A�#�+���Br,c��Gd�dtj�}tjd�jddd�}tjd�jddd�j	|�}tj||�dd�dd�dd�f}tj||dd�dd�dd�f�}t||�tt||��tj||�dd�dd�dd�f}tj|dd�dd�dd�f|dd�dd�dd�f�}t||�tt||��y)	Nc��eZdZy)�.TestSolve.test_0_size_k.<locals>.ArraySubclassNrrXr,r*rr,rr,rrsrorqr�rrr)
r&r'r r�r�rrrrr%r's      r*�
test_0_size_kzTestSolve.test_0_size_k
s��	�B�J�J�	��I�I�a�L� � ��A�q�)���I�I�a�L� � ��A�q�)�.�.�}�=���<�<��1�%�a��A�a�C�i�0�����a��1�a��1��9��.���6�8�,��
�6�=�1�2��<�<��1�%�a��1��a��c�k�2�����a��1�Q�3��!���n�a��1�Q�3��!���n�=���6�8�,��
�6�=�1�2r,N)rTrUrVr�r��parametrizerrrrrr#r)r-rXr,r*rr�s@���[�[���W�v�v�w��&H�I�6�J�6�6�"C�B3r,rc��eZdZd�Zy)�InvCasesc��tj|�}tt||�t	|��tt
||��yr#)r�invrr
r	rr+)rJr1r2rI�a_invs     r*rNzInvCases.dos8���
�
�1�
���F�1�e�,�5�a�8�	:��#�E�1�-�.r,NrrXr,r*r0r0s��/r,r0c�^�eZdZejjdeeee	g�d��Z
d�Zy)�TestInvr/c��tjddgddgg|��}ttj|�j
|�yr)r&rrrr2r/rs   r*rzTestInv.test_types's7���H�H�q�#�h��a��)��7���V�Z�Z��]�(�(�%�0r,c���Gd�dtj�}tjdtj��j	|�}tj|�}t|jjtju�t|j|j�tt||��tjdtj��j	|�}tj|�}t|jjtju�t|j|j�tt||��y)Nc��eZdZy)�*TestInv.test_0_size.<locals>.ArraySubclassNrrXr,r*rr9.rr,r�rroror7rj)r&r'�zeros�int_r�rr2rr/r$�float64rr�r%�	complex64�rJrr1�ress    r*r)zTestInv.test_0_size,s���	�B�J�J�	��H�H�Y�b�g�g�.�3�3�M�B���j�j��m����	�	���"�*�*�,�-��Q�W�W�c�i�i�(��
�3�
�.�/��H�H�V�2�<�<�0�5�5�m�D���j�j��m����	�	���"�,�,�.�/��Q�W�W�c�i�i�(��
�3�
�.�/r,N�rTrUrVr�r�r.rrrrrr)rXr,r*r5r5&s4���[�[���W�v�v�w��&H�I�1�J�1�0r,r5c��eZdZd�Zy)�EigvalsCasesc�v�tj|�}tj|�\}}t||�yr#)r�eigvals�eigr)rJr1r2rI�ev�evalues�evectorss       r*rNzEigvalsCases.do?s,��
�^�^�A�
��"�J�J�q�M�����B��(r,NrrXr,r*rCrC=s��)r,rCc�^�eZdZejjdeeee	g�d��Z
d�Zy)�TestEigvalsr/c�.�tjddgddgg|��}ttj|�j
|�tjddgddgg|��}ttj|�j
t
|��y�Nrorr7r�)r&rrrrEr/r:rs   r*rzTestEigvals.test_typesFst���H�H�q�#�h��a��)��7���V�^�^�A�&�,�,�e�4��H�H�q�#�h��Q��(��6���V�^�^�A�&�,�,�.?��.F�Gr,c��Gd�dtj�}tjdtj��j	|�}tj|�}t|jjtju�td|j�tt|tj��tjdtj��j	|�}tj|�}t|jjtju�td|j�tt|tj��y)Nc��eZdZy)�.TestEigvals.test_0_size.<locals>.ArraySubclassNrrXr,r*rrPOrr,rr:r7�rrorjrk)r&r'r;r<r�rrErr/r$r=rr�r%r>r?s    r*r)zTestEigvals.test_0_sizeMs���	�B�J�J�	��H�H�Y�b�g�g�.�3�3�M�B���n�n�Q�����	�	���"�*�*�,�-��V�S�Y�Y�'��
�3��
�
�+�,��H�H�V�2�<�<�0�5�5�m�D���n�n�Q�����	�	���"�,�,�.�/��T�3�9�9�%��
�3��
�
�+�,r,NrArXr,r*rKrKEs6���[�[���W�v�v�w��&H�I�H�J�H�-r,rKc��eZdZd�Zy)�EigCasesc	�@�tj|�}|j|j}}t	t||�t
j|�t
j|�dddd�fzt|j���tt||��y)N.��rtol)rrF�eigenvalues�eigenvectorsrr
r&rr<r/rr+)rJr1r2rIr@rWrXs       r*rNzEigCases.dobsz���j�j��m��$'�O�O�S�5E�5E�\����q�,�/��
�
�<�0�2�:�:�k�3J�3�PT�VW�<�3X�X�%�k�&7�&7�8�	:�	�#�L�!�4�5r,NrrXr,r*rSrS`s��6r,rSc�^�eZdZejjdeeee	g�d��Z
d�Zy)�TestEigr/c���tjddgddgg|��}tjj|�\}}t	|j
|�t	|j
|�tjddgddgg|��}tjj|�\}}t	|j
t
|��t	|j
t
|��yrM)r&rrrFrr/r:�rJr/r��w�vs     r*rzTestEig.test_typesls����H�H�q�#�h��a��)��7���y�y�}�}�Q����1��Q�W�W�e�$��Q�W�W�e�$��H�H�q�#�h��Q��(��6���y�y�}�}�Q����1��Q�W�W�/��6�7��Q�W�W�/��6�7r,c�B�Gd�dtj�}tjdtj��j	|�}tj|�\}}t|jjtju�t|jjtju�t|j|j�td|j�tt|tj��tjdtj��j	|�}tj|�\}}t|jjtju�t|jjtju�t|j|j�td|j�tt|tj��y)Nc��eZdZy)�*TestEig.test_0_size.<locals>.ArraySubclassNrrXr,r*rrazrr,rr:r7rQrjrk)r&r'r;r<r�rrFrr/r$r=rr�r%r>�rJrr1r@�res_vs     r*r)zTestEig.test_0_sizexs@��	�B�J�J�	��H�H�Y�b�g�g�.�3�3�M�B���Z�Z��]�
��U����� � �B�J�J�.�/���	�	���"�*�*�,�-��Q�W�W�e�k�k�*��V�S�Y�Y�'��
�1�b�j�j�)�*��H�H�V�2�<�<�0�5�5�m�D���Z�Z��]�
��U����� � �B�L�L�0�1���	�	���"�,�,�.�/��Q�W�W�e�k�k�*��T�3�9�9�%��
�1�b�j�j�)�*r,NrArXr,r*rZrZks4���[�[���W�v�v�w��&H�I�	8�J�	8�+r,rZc�\�eZdZdZej
j
deee	e
g�d��Zy)�SVDBaseTestsFr/c���tjddgddgg|��}tj|�}|j|j
|j}}}t|j|�t|jt|��t|j|�tj|d|j��}t|jt|��y)Nrorr7F��
compute_uvr?)r&rr�svd�U�S�Vhrr/r8r?)rJr/r�r@rjrkrlr�s        r*rzSVDBaseTests.test_types�s����H�H�q�#�h��a��)��7���j�j��m���5�5�#�%�%����b�1���Q�W�W�e�$��Q�W�W�n�U�3�4��R�X�X�u�%��J�J�q�U�d�n�n�E���Q�W�W�n�U�3�4r,N)rTrUrVr?r�r�r.rrrrrrXr,r*rere�s4���I��[�[���W�v�v�w��&H�I�5�J�5r,rec��eZdZd�Zy)�SVDCasesc�j�tj|d�\}}}t|tt	j
|�t	j
|�dddd�fzt	j
|��t
|j���tt||��tt||��y)NF.rU)
rrirr
r&rr<r/rr+)rJr1r2rI�ur��vts       r*rNzSVDCases.do�s����:�:�a��'���1�b���6�"�*�*�Q�-�"�*�*�Q�-��T�1��2M�"M�+-�:�:�b�>�;�%�a�g�g�.�	0�	�#�A�q�)�*��#�B��*�+r,NrrXr,r*rnrn�s��,r,rnc��eZdZd�Zd�Zy)�TestSVDc��tjd�}tj|d|j��\}}}t|jd�t|jd�t|tjd��tjd�}tj|d|j��\}}}t|jd�t|jd�t|tjd��y)	z6 Empty input should put an identity matrix in u or vh )rsrTrg�rsrsrjrs)rrsN)r&r�rrir?rr��eye)rJr�rpr��vhs     r*�test_empty_identityzTestSVD.test_empty_identity�s����H�H�V����:�:�a�D�D�N�N�K���1�b��Q�W�W�f�%��R�X�X�v�&��Q����q�	�"��H�H�V����:�:�a�D�D�N�N�K���1�b��Q�W�W�f�%��R�X�X�v�&��R������#r,c��tjddgddgg�}tj|d|j��}tj
|�}t
||�y)NrorFrg)r&rrrir?�svdvalsr)rJr��
s_from_svd�s_from_svdvalss    r*�test_svdvalszTestSVD.test_svdvals�sK���H�H�q�#�h��a��)�*���Z�Z��e�t�~�~�N�
�����*���J��7r,N)rTrUrVrxr}rXr,r*rsrs�s��$�8r,rsc��eZdZd�Zy)�SVDHermitianCasesc�R�tj|dd��\}}}t|tt	j
|�t	j
|�dddd�fzt	j
|��t
|j���d�}tt	j|||��t	jt	j|jd�|j��tt	j|||��t	jt	j|jd�|j��tt	j|�dddd�f|�tt||��tt||��y)NFT�r?.rUc��tt|j��}|d|dc|d<|d<tjtj
||���S)Nr�r���axes)r��ranger�r&�conj�	transpose)�matr�s  r*r?z'SVDHermitianCases.do.<locals>.hermitian�sJ����c�h�h��(�D�!%�b��4��8��D��H�d�2�h��7�7�2�<�<��$�7�8�8r,r�)rrirr
r&rr<r/rrrvr�r�sortrr+)rJr1r2rIrpr�rqr?s        r*rNzSVDHermitianCases.do�s(���:�:�a��$�7���1�b���6�"�*�*�Q�-�"�*�*�Q�-��T�1��2M�"M�+-�:�:�b�>�;�%�a�g�g�.�	0�	9�
	�B�I�I�a��1��6�������q�w�w�WY�{�H[�]^�]d�]d�8e�f��B�I�I�b�)�B�-�8�"�/�/�"�&�&�QS�QY�QY�Z\�Q]�J^�`b�`h�`h�:i�j��R�W�W�Q�Z��T�r�T�	�*�A�.��#�A�q�)�*��#�B��*�+r,NrrXr,r*rr�s��,r,rc��eZdZdZy)�TestSVDHermitianTN)rTrUrVr?rXr,r*r�r��s���Ir,r�c��eZdZd�Zy)�	CondCasesc	���t|�}d|vr tttj|�ytj
|d��}t
tj|�|d|dzdd��t
tj|d	�|d|dzdd��t
tj|d
�|d|dzdd��tjj|�}t
tj|d�t|�jd
�jd�t|�jd
�jd�zdd��t
tj|d�t|�jd
�jd�t|�jd
�jd�zdd��t
tj|tj�t|�jd�jd�t|�jd�jd�zdd��t
tj|tj�t|�jd�jd�t|�jd�jd�zdd��t
tj|d
�tjt|�d	zjd�jd�t|�d	zjd�jd�z�dd��y)NrBF)rhr
).r�r�r��r3r4rqr�ror��fro)rrrr�condrirr&r2r��sum�max�minr�sqrt)rJr1r2rI�cr��cinvs       r*rNzCondCases.do�s����A�J���t���+�v�{�{�A�6��
�J�J�q�U�+����K�K��N�A�f�I��'�
�2��R�	1�	��K�K��1��q��y�1�W�:�5��R�	1�	��K�K��2���'�
�Q�v�Y� 6��R�	1�
�y�y�}�}�Q�����K�K��1����F�J�J�r�N���r�"�S��Y�]�]�2�%6�%:�%:�2�%>�>��R�	1�	��K�K��2����F�J�J�r�N���r�"�S��Y�]�]�2�%6�%:�%:�2�%>�>��R�	1�	��K�K��2�6�6�"���F�J�J�r�N���r�"�S��Y�]�]�2�%6�%:�%:�2�%>�>��R�	1�	��K�K��B�F�F�7�#���F�J�J�r�N���r�"�S��Y�]�]�2�%6�%:�%:�2�%>�>��R�	1�	��K�K��5�!��G�G�S��V�Q�Y�O�O�B�'�+�+�B�/��4�y�!�|�(�(��,�0�0��4�5�
6��R�		1r,NrrXr,r*r�r��s��(1r,r�c�f�eZdZd�Zd�Zejjddd��d��Zd�Z	y	)
�TestCondc��tgd�gd�gd�g�}ttj|t�d�ttj|t�d�ttj|d�d�ttj|d�d�ttj|d	�tjd
��y)N)r`rro)rg�r)rrrbrsgUUUUUU�?ror�rr�gUUUUU6@)rrrr�rr&r��rJ�As  r*�test_basic_nonsvdzTestCond.test_basic_nonsvds����:�{�J�7�8���F�K�K��3�/��3��F�K�K��C�4�0�#�6��F�K�K��1�-�q�1��F�K�K��2�.��4��F�K�K��5�1�2�7�7�8�3D�Er,c�P�tjd�tjd�g}gd�}ddg}tj||�D]'\}}tt
j||�dkD��)tj||�D]\}}t
j||��y)Nr�Nrorqr�r�r��4&�kC)r&r;�onesr�r�rrr�)rJ�As�p_pos�p_negr��ps      r*�
test_singularzTestCond.test_singulars����h�h�v�������
0��#���R����%�%�b�%�0�	.�D�A�q�
�F�K�K��1�%��,�-�	.��%�%�b�%�0�	�D�A�q��K�K��1��	r,TFz/Platform/LAPACK-dependent failure, see gh-18914)�run�reasonc���gd�}gd�}tjd�}tj|d<|D]Y}tj||�}tt
|tj��ttj|���[tjd�}tj|d<|D]�}tj||�}ttj|d��||vr#t|dd	kD�t|d
d	kD��attj|d��ttj|d
����y)N)Nror�rqr�r�r�rrQ)rrrqrq�rorrororr�rq)	r&r��nanrr�rr%r=�isnan)rJ�psr�r�r�r�s      r*�test_nanzTestCond.test_nans��
)��#���G�G�F�O������#���	!�A����A�q�!�A��J�q�"�*�*�-�.��B�H�H�Q�K� �	!�

�G�G�I����6�6��%���	,�A����A�q�!�A��B�H�H�Q�q�T�N�#��E�z���!��t��$���!��t��$��B�H�H�Q�q�T�N�*�+��B�H�H�Q�q�T�N�*�+�	,r,c���tjjd�tjjdddd�}d|d<d|d<dD]�}t	j
||�}t
|dtj�t
|dtj�ttj|d��ttj|d����y)	Nr_rqrrjr�)Nrorqr�r�r�rQ�ror)
r&�random�seed�randrr�rrr�isfinite)rJr�r�r�s    r*�test_stacked_singularzTestCond.test_stacked_singular7s���	�	�	���t���I�I�N�N�1�a��A�&����#����#��,�	)�A����A�q�!�A���3�����(���3�����(��B�K�K��#��'�(��B�K�K��#��'�(�	)r,N)
rTrUrVr�r�r�r��xfailr�r�rXr,r*r�r�sC��F���[�[���t��-��.�,�.�,�0
)r,r�c��eZdZd�Zy)�	PinvCasesc��tj|�}t}t||||�|�|dd��t	t||��y)Nr�r�r��r�pinvr
rrr+�rJr1r2rI�a_ginvrs      r*rNzPinvCases.doLs@�����Q������C��A�v���2�A�a�XZ�[��#�F�A�.�/r,NrrXr,r*r�r�Gs��
0r,r�c��eZdZy)�TestPinvNrrXr,r*r�r�T���r,r�c��eZdZd�Zy)�PinvHermitianCasesc��tj|d��}t}t||||�|�|dd��t	t||��y)NTr�r�r�r�r�r�s      r*rNzPinvHermitianCases.doZsC�����Q�$�/�����C��A�v���2�A�a�XZ�[��#�F�A�.�/r,NrrXr,r*r�r�Xs��0r,r�c��eZdZy)�TestPinvHermitianNrrXr,r*r�r�br�r,r�c�x�tjgd�gd�gd�g�}ttjj	|d��tjj	|d���tjtd��5tjj	|dd�	�ddd�y#1swYyxYw)
N�rorqrr)rsroro)rqrrror��rcondrUz%`rtol` and `rcond` can't be both set.)�match)r�rV)r&rrrr�r��raisesr!)r1s r*�test_pinv_rtol_argr�fs���
���)�Y�	�2�3�A��
�	�	���q���$�
�	�	���q�s��#��

����B�
�/�	�	�	���q��#��.�/�/�/�s�#B0�0B9c��eZdZd�Zy)�DetCasesc��tj|�}tj|�}|j|j}}t|�jjttfvrt|�jt�}nt|�jt�}tj|�}	t|tj|	d���t|t!j"|�ztj|	d���t!j$|�}t!j$|�}|dk7}
tt!j&||
�d�t)||
t*�y)Nr���axisrro)r�det�slogdet�sign�	logabsdetrr/r$rr�astyperrErr
�reducer&�exp�
atleast_1dr�rr)rJr1r2rI�dr@r��ld�adrG�ms           r*rNzDetCases.dovs���J�J�q�M���n�n�Q������#�-�-�2���1�:��� � �V�V�$4�4����"�"�6�*�B����"�"�7�+�B�
�^�^�B�
���A�x���r��;�<��A����r�
�N�H�O�O�B�R�,H�I��M�M�!���
�]�]�2�
��
�!�V���B�F�F�1�Q�4�L�!�,��R���V�c�T�"r,NrrXr,r*r�r�ts��#r,r�c�d�eZdZd�Zej
j
deee	e
g�d��Zd�Zy)�TestDetc�h�ttjdgg�d�tttjdgg��t�ttjdgg�d�tttjdgg��t
�ttjdgg�dtf�tttjdgg�d�t�tttjdgg�d�t�ttjdgg�dtf�tttjdgg�d�t
�tttjdgg�d�t�y)N�yrro)rrr�r$rrr�rrRs r*�	test_zerozTestDet.test_zero�s&���V�Z�Z�#���(�#�.��T�&�*�*�s�e�W�-�.��7��V�Z�Z�$���)�3�/��T�&�*�*�t�f�X�.�/��9��V�^�^�c�U�G�,�s�S�D�k�:��T�&�.�.�3�%��1�!�4�5�v�>��T�&�.�.�3�%��1�!�4�5�v�>��V�^�^�d�V�H�-��s�d�|�<��T�&�.�.�4�&��2�1�5�6��@��T�&�.�.�4�&��2�1�5�6��?r,r/c�R�tjddgddgg|��}ttjj	|�j
|�tjj
|�\}}t|j
t|��t|j
|�yr)r&rrrr�r/r�r8)rJr/r��phr�s     r*rzTestDet.test_types�su���H�H�q�#�h��a��)��7���R�Y�Y�]�]�1�%�+�+�U�3��	�	�!�!�!�$���A��Q�W�W�n�U�3�4��R�X�X�u�%r,c���tjdtj��}tj|�}t|d�t
|jjtju�tj|�}t|d�t
|djjtju�t
|djjtju�tjdtj��}tj|�}t|d�t
|jjtju�tj|�}t|d�t
|djjtju�t
|djjtju�y)Nrjr7r`r�rro)r&r;r>rr�rrr/r$r��float32r=)rJr1r@s   r*r)zTestDet.test_0_size�s6���H�H�V�2�<�<�0���j�j��m���S�"����	�	���"�,�,�.�/��n�n�Q����S�&�!���A����!�!�R�\�\�1�2���A����!�!�R�Z�Z�/�0��H�H�V�2�:�:�.���j�j��m���S�"����	�	���"�*�*�,�-��n�n�Q����S�&�!���A����!�!�R�Z�Z�/�0���A����!�!�R�Z�Z�/�0r,N)
rTrUrVr�r�r�r.rrrrrr)rXr,r*r�r��s<��@��[�[���W�v�v�w��&H�I�&�J�&�1r,r�c��eZdZd�Zy)�
LstsqCasesc�0�tj|�}|j\}}tj|d�\}}}	tj
||d��\}
}}}
|dk(rt
|
dk(j��||kr#t|t||
��t||�nt||�t|
|
j|��||k(r�||kDr�tjttj||
�|z
��dzjd��}tj|�}tj|�jdk(rUd|_t|j|j�n-tjg�j!t#|
��}t||�t
tj$|j&tj(��t
t+|
|��t
t+||��y)	NFr�r�rrqr�ror�)r&rr�rri�lstsqrr�rrr�__array_wrap__r�r�r�rr�r$�
issubdtyper/�floatingr+)rJr1r2rI�arrr��nrpr�rqr��	residuals�rank�sv�
expect_residss               r*rNz
LstsqCases.do�s����j�j��m���y�y���1��:�:�a��'���1�b�!'���a��"�!=���9�d�B���6��Q�!�V�L�L�N�#���6���3�q�!�9�-���q�!���q�!��B�� 1� 1�!� 4�5��1�9��Q���
�
�3�r�v�v�a��|�a�/�0�1�Q�6������
��J�J�}�5�M��z�z�!�}�!�!�Q�&�&*�
�#��Y�_�_�m�.A�.A�B��H�H�R�L�-�-�d�1�g�6�M��I�}�5���
�
�i�o�o�r�{�{�;�<��#�A�q�)�*��#�I�q�1�2r,NrrXr,r*r�r��s��3r,r�c�d�eZdZd�Zej
j
gd�gd��d��Zd�Zy)�	TestLstsqc��tjgd�gd�gd�gd�g�j}tjgd��}tj||d��\}}}}t|dk(�tj||�\}}}}t|d	k(�tj||d��\}}}}t|d	k(�y)
N)r�r`r�r`rar�)r�rar�r�r`r�)r`r�r`r�r�rc)r�r�r�rarbr�)rorrrrrr�r�rsrr)r&r�Trr�r)rJr1r2r�r�r�r�s       r*�
test_rcondzTestLstsq.test_rcond�s����H�H�2�2�2�2�4�
5�67�Q�	
�

�H�H�'�(�� &���Q��� <���9�d�A����	�� &���Q�� 2���9�d�A����	�� &���Q��� >���9�d�A����	�r,)r�r��n_rhs))rsrqrq)rrsro)rrsrq)rsrro)rsrrq)rsrqr�rrrc�\�tj||z�j||�}tj||f�}t	j
||d��\}}}}	|dk(rt
|dk(j��t|j||f�t|j||kDr|fnd�||kDr=|dkDr8|tj||�z
}
t||
|
zjd���t|t||��t|	jt||�f�y)Nr�rrkr�r�)r&r r�r�rr�rr�rr�rrr�r�)rJr�r�r�r1r2r�r�r�r�rs           r*�test_empty_a_bzTestLstsq.test_empty_a_b�s���
�I�I�a�!�e��$�$�Q��*���G�G�Q��J��� &���Q��� >���9�d�A���6��Q�!�V�L�L�N�#��Q�W�W�q�%�j�)��Y�_�_�1�q�5��x�d�D��q�5�U�Q�Y��B�F�F�1�a�L� �A��	�A��E�;�;�B�;�+?�@��T�3�q�!�9�%��Q�W�W�s�1�a�y�l�+r,c�T�tjgd��}tjgd��}tj|tjt	|��g�j
}t
td�5tj||d��ddd�y#1swYyxYw)N)rrorqrr)r�g�������?g�������?g������@gffffff
@zIncompatible dimensionsr�)
r&r�vstackr��lenr�rrrr�)rJr��yr�s    r*�test_incompatible_dimsz TestLstsq.test_incompatible_dims�st���H�H�\�"���H�H�-�.���I�I�q�"�'�'�#�a�&�/�*�+�-�-��
 ��.G�
H�	+��L�L��A�T�*�	+�	+�	+�s�<B�B'N)	rTrUrVr�r�r�r.r�rrXr,r*r�r��s7��
��[�[���0�3��
,��
,�+r,r��dtz?bBhHiIqQefdgFDGOc��eZdZejd�Zegd�Zegd�Zegd�ZeeeegZ	e
ddgddgg�Zejegggdz�Z
eejd�ejd	�ejd
�gZd�Zd�Zd
�Zd�Zd�Zd�Zd�Zej2j5ed��d��Zy)�TestMatrixPowerrs)rrrrorq)rqrrrro)rorqrrrrorrqr��g�Gc��|jj|�}tt|ddzdzdzdz�|j�tt|ddzdzdzdz�|j�tt|ddzdzdzdz�|j
�tt|ddzdzdzdz�|j�y)Nrq�di� rrorr)�rshft_1r�rr�rshft_0�rshft_2�rshft_3)rJr�rshfts   r*�test_large_powerz TestMatrixPower.test_large_powers������#�#�B�'������3����� 5�� 9�:�D�L�L�	J�����3����� 5�� 9�:�D�L�L�	J�����3����� 5�� 9�:�D�L�L�	J�����3����� 5�� 9�:�D�L�L�	Jr,c��d�}|jD]D}||j|��|tk7s�$||jj|���Fy)Nc��t|d�}t|t|��t|j|j�y)Nr)rrr	r/)�M�mzs  r*�tzz.TestMatrixPower.test_power_is_zero.<locals>.tzs0���a��#�B���6�q�9�:�����1�7�7�+r,��	rshft_allr��object�stacked�rJrrr�s    r*�test_power_is_zeroz"TestMatrixPower.test_power_is_zerosJ��	,�
�>�>�	,�C��s�z�z�"�~���V�|��4�<�<�&�&�r�*�+�	,r,c��d�}|jD]D}||j|��|tk7s�$||jj|���Fy)Nc�t�t|d�}t||�t|j|j�y)Nro)rrr/)r�rs  r*rz-TestMatrixPower.test_power_is_one.<locals>.tz&s*���c�1�%�B���S�!�����3�9�9�-r,rrs    r*�test_power_is_onez!TestMatrixPower.test_power_is_one%sJ��	.�
�>�>�	,�C��s�z�z�"�~���V�|��4�<�<�&�&�r�*�+�	,r,c��d�}|jD]D}||j|��|tk7s�$||jj|���Fy)Nc��t|d�}|jtk7rtnt}t||||��t|j|j�y)Nrq)rr/rr
rr)r�r�mmuls   r*rz-TestMatrixPower.test_power_is_two.<locals>.tz1sB���c�1�%�B� �Y�Y�&�0�6�c�D���T�#�s�^�,�����3�9�9�-r,rrs    r*�test_power_is_twoz!TestMatrixPower.test_power_is_two0sJ��	.��>�>�	,�C��s�z�z�"�~���V�|��4�<�<�&�&�r�*�+�	,r,c�x�d�}|jD](}||jvs�||j|���*y)Nc��t|d�}|jtk7rtnt}t|||�t
|��y�Nr�)rr/rr
rrr	)r��invmatr s   r*rz3TestMatrixPower.test_power_is_minus_one.<locals>.tz=s;��!�#�r�*�F� �Y�Y�&�0�6�c�D���V�S�!�#<�S�#A�
Cr,)r�dtnoinvr�rs    r*�test_power_is_minus_onez'TestMatrixPower.test_power_is_minus_one<s9��	C��>�>�	#�C�����%��3�:�:�b�>�"�	#r,c��|jj|�}ttt|d�ttt|dg�y)Ng�?ro)rr�r�	TypeErrorr�rJrr�s   r*�test_exceptions_bad_powerz)TestMatrixPower.test_exceptions_bad_powerGs4���l�l�!�!�"�%���i��s�C�8��i��s�Q�C�8r,c�
�ttttjdg|�d�ttttjdgdgg|�d�ttttj
d|�d�y)Nrorq)rsrrrq)rrrr&rr�)rJrs  r*�test_exceptions_non_squarez*TestMatrixPower.test_exceptions_non_squareLsW���k�<����1�#�r�1B�A�F��k�<����A�3���*�b�1I�1�M��k�<�����B�1G��Kr,�fp errors don't work in wasm�r�c��||jvry|jj|�}ttt
|d�yr$)r&�noninvr�rrrr*s   r*�test_exceptions_not_invertiblez.TestMatrixPower.test_exceptions_not_invertibleQs3��
�������k�k� � ��$���k�<��b�9r,N)rTrUrVr&rvrr
rr
rrr1�blockrrr/r&rrrr!r'r+r-r�r��skipifr!r2rXr,r*rrs����b�f�f�Q�i�G��l�#�G��l�#�G��l�#�G��'�7�G�4�I�
�Q��F�Q��F�#�
$�F��b�h�h�'���}�Q��'�G��x�r�x�x��}�h�b�h�h�s�m�X�R�X�X�c�]�C�G�	J�	,�	,�
,�	#�9�
L�
�[�[����(F��G�:�H�:r,rc��eZdZd�Zy)�TestEigvalshCasesc�4�tj|d�}tj|�\}}|jd��t	||t|j���tj|d�}t	||t|j���y)N�Lr�r�rUrj)r�eigvalshrFr�rr<r/)rJr1r2rIrGrHrI�ev2s        r*rNzTestEigvalshCases.do[sn���_�_�Q��
$��"�J�J�q�M�������"�����G�(�2�8�8�*<�=��o�o�a��%����W�8�B�H�H�+=�>r,NrrXr,r*r6r6Ys��	?r,r6c�j�eZdZejjdeeee	g�d��Z
d�Zd�Zd�Z
y)�TestEigvalshr/c��tjddgddgg|��}tjj|�}t	|j
t
|��yr)r&rrr9rr/r8)rJr/r�r]s    r*rzTestEigvalsh.test_typeshsF���H�H�q�#�h��a��)��7���I�I���q�!���Q�W�W�n�U�3�4r,c�X�tjddgddggtj��}tttj
j|d��tttj
j|d�tttj
j|d�y�Nrorr7�lrong��UPLO�lower�upper)r&rr�rr!rr9�rJr�s  r*�test_invalidzTestEigvalsh.test_invalidnsk���H�H�q�#�h��a��)����<���j�"�)�)�"4�"4�a�g�F��j�"�)�)�"4�"4�a��A��j�"�)�)�"4�"4�a��Ar,c��tjddgddggtj��}tjddgddggtj��}tjddgtj��}ttj�}tjj|�}t
|||��tjj|d��}t
|||��tjj|d��}t
|||��tjj|d	��}t
|||��tjj|d
��}t
|||��y�Nrror7r�rUr8rA�lrjrp)r&rrr<rr9r)rJ�Klo�Kup�tgtrVr]s      r*�	test_UPLOzTestEigvalsh.test_UPLOts ���h�h��A���A��'�r�y�y�9���h�h��A���A��'�r�y�y�9���h�h��A�w�b�i�i�0����	�	�"��
�I�I���s�#����3�T�*��I�I���s���-����3�T�*��I�I���s���-����3�T�*��I�I���s���-����3�T�*��I�I���s���-����3�T�*r,c��Gd�dtj�}tjdtj��j	|�}tj|�}t|jjtju�td|j�tt|tj��tjdtj��j	|�}tj|�}t|jjtju�td|j�tt|tj��y)Nc��eZdZy)�/TestEigvalsh.test_0_size.<locals>.ArraySubclassNrrXr,r*rrP�rr,rr:r7rQrjrk)r&r'r;r<r�rr9rr/r$r=rr�r%r>r�r?s    r*r)zTestEigvalsh.test_0_size�s���	�B�J�J�	��H�H�Y�b�g�g�.�3�3�M�B���o�o�a� ����	�	���"�*�*�,�-��V�S�Y�Y�'��
�3��
�
�+�,��H�H�V�2�<�<�0�5�5�m�D���o�o�a� ����	�	���"�*�*�,�-��T�3�9�9�%��
�3��
�
�+�,r,N�rTrUrVr�r�r.rrrrrrFrMr)rXr,r*r<r<gs?���[�[���W�v�v�w��&H�I�5�J�5�
B�+�,-r,r<c��eZdZd�Zy)�
TestEighCasesc��tj|�}|j|j}}tj|�\}}|jd��t
||�tt||�tj|�dddd�ftj|�zt|j���tj|d�\}	}
t
|	|�tt||
�tj|	�dddd�ftj|
�zt|j�t|���y)Nr�r�.rUrj)rV�err_msg)r�eighrWrXrFr�rrr
r&rr<r/�repr)rJr1r2rIr@rG�evcrHrIr:�evc2s           r*rNzTestEighCases.do�s����k�k�!�n���/�/�3�#3�#3�C��"�J�J�q�M�������"����B��(���q�#���
�
�2��s�D�!�|�4�r�z�z�#��F�%�b�h�h�/�	1��K�K��3�'�	��T��C��)���q�$���
�
�3���T�1��5��
�
�4�8H�H�%�b�h�h�/��a��	Br,NrrXr,r*rSrS�s��Br,rSc�j�eZdZejjdeeee	g�d��Z
d�Zd�Zd�Z
y)�TestEighr/c���tjddgddgg|��}tjj|�\}}t	|j
t
|��t	|j
|�yr)r&rrrVrr/r8r\s     r*rzTestEigh.test_types�sV���H�H�q�#�h��a��)��7���y�y�~�~�a� ���1��Q�W�W�n�U�3�4��Q�W�W�e�$r,c�X�tjddgddggtj��}tttj
j|d��tttj
j|d�tttj
j|d�yr?)r&rr�rr!rrVrEs  r*rFzTestEigh.test_invalid�se���H�H�q�#�h��a��)����<���j�"�)�)�.�.�!�'�B��j�"�)�)�.�.�!�W�=��j�"�)�)�.�.�!�W�=r,c� �tjddgddggtj��}tjddgddggtj��}tjddgtj��}ttj�}tjj|�\}}t
|||��tjj|d��\}}t
|||��tjj|d��\}}t
|||��tjj|d	��\}}t
|||��tjj|d
��\}}t
|||��yrH)r&rrr<rrVr)rJrJrKrLrVr]r^s       r*rMzTestEigh.test_UPLO�s&���h�h��A���A��'�r�y�y�9���h�h��A���A��'�r�y�y�9���h�h��A�w�b�i�i�0����	�	�"���y�y�~�~�c�"���1���3�T�*��y�y�~�~�c��~�,���1���3�T�*��y�y�~�~�c��~�,���1���3�T�*��y�y�~�~�c��~�,���1���3�T�*��y�y�~�~�c��~�,���1���3�T�*r,c�B�Gd�dtj�}tjdtj��j	|�}tj|�\}}t|jjtju�t|jjtju�t|j|j�td|j�tt|tj��tjdtj��j	|�}tj|�\}}t|jjtju�t|jjtju�t|j|j�td|j�tt|tj��y)Nc��eZdZy)�+TestEigh.test_0_size.<locals>.ArraySubclassNrrXr,r*rra�rr,rr:r7rQrjrk)r&r'r;r<r�rrVrr/r$r=rr�r%r>r�rbs     r*r)zTestEigh.test_0_size�s@��	�B�J�J�	��H�H�Y�b�g�g�.�3�3�M�B���[�[��^�
��U����� � �B�J�J�.�/���	�	���"�*�*�,�-��Q�W�W�e�k�k�*��V�S�Y�Y�'��
�1�b�j�j�)�*��H�H�V�2�<�<�0�5�5�m�D���[�[��^�
��U����� � �B�L�L�0�1���	�	���"�*�*�,�-��Q�W�W�e�k�k�*��T�3�9�9�%��
�1�b�j�j�)�*r,NrQrXr,r*r[r[�s>���[�[���W�v�v�w��&H�I�%�J�%�>�+�,+r,r[c�$�eZdZdZdZed��Zy)�
_TestNormBaseNc�$�t|jjtj�r+t|j|jj�ytt|jjtj��yr#)	�
issubclassr/r$r&�inexactr�realrr�)r�r@s  r*�check_dtypez_TestNormBase.check_dtype�sK���a�g�g�l�l�B�J�J�/�����A�F�F�L�L�1�
�J�s�y�y�~�~�r�{�{�;�<r,)rTrUrVr�dec�staticmethodrhrXr,r*rcrc�s��	
�B�
�C��=��=r,rcc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�_TestNormGeneralc
���ttg�d�tttg|j���d�ttt	tg|j����d�y)Nr�r7)rrrrrrRs r*�
test_emptyz_TestNormGeneral.test_empty�sI���T�"�X�s�#��T�%��$�'�'�2�3�S�9��T�*�U�2�T�W�W�%=�>�?��Er,c��tjgd��}tjd}tjd}||z}|D�]�}|j|�}t	|tj
�}|j
||�t|d�t�5}|jtd�t	|d�}|j
||�t|d�ddd�t	|d�}|j
||�t|d�t	|d	�}|j
||�t|d
�t	|d�}|j
||�t||jjd
�|jjd�z�t	|d�}|j
||�t||jjd
�|jjd
�z�t	|tj
�}|j
||�t|d����y#1swY��XxYw)Nr��
AllInteger�AllFloatr��divide by zero encounteredr�rrqrorarrsg�?r`)
r&r�	typecodesr�rrrhrr�filter�RuntimeWarningr/r$�	rJr1�exact_types�
inexact_types�	all_types�	each_type�at�an�sups	         r*�test_vector_return_typez(_TestNormGeneral.test_vector_return_types����H�H�Y����l�l�<�0�����Z�0�
��-�/�	�"�	)�I����)�$�B��b�2�6�6�'�"�B����R��$���C�(�"�$�
-���
�
�>�+G�H��"�b�\��� � ��R�(�#�B��,�	
-��b�!��B����R��$���A�&��b�!��B����R��$���C�(��b�!��B����R��$���B�H�H�M�M�#�$6����
�
�g�8N�$N�O��b�!��B����R��$���B�H�H�M�M�#�$6����
�
�g�8N�$N�O��b�"�&�&�!�B����R��$���C�(�?	)�
-�
-�s
�AH4�4H>	c����gd�}gd�}gd�}�fd�}|||fD]
}||��t|�j��t|�j��t|�j��fD]
}||��y)N)rorqrrrs)r�r�r�r�)r�rqr�rsc�v��tjjt|�d�j��tjjt|t
�d�j��tjjt|t
�d�j��tjjt|d�d�j��tjjt|d�d�j��tjjt|d	�d�j��tjjt|d
�d�j��tjjt|d�d
�j��y)Ng��6ҭ�@�r.rcr`ro�$@r�g���Q��?rqr�g�s�c���?rrs)r&�testingrrrir)r^rJs �r*�_testz+_TestNormGeneral.test_vector.<locals>._test1sD����J�J�*�*�4��7�I�37�8�8�
+�
=��J�J�*�*�4��3�<��37�8�8�
+�
=��J�J�*�*�4��C�4�=�#�37�8�8�
+�
=��J�J�*�*�4��1�:�t�37�8�8�
+�
=��J�J�*�*�4��2�;�	�37�8�8�
+�
=��J�J�*�*�4��1�:�y�37�8�8�
+�
=��J�J�*�*�4��2�;�9M�37�8�8�
+�
=��J�J�*�*�4��1�:�q�37�8�8�
+�
=r,r7)rr)rJr1r2r�r�r^s`     r*�test_vectorz_TestNormGeneral.test_vector,sx���������	=�$�Q���	�A��!�H�	������)�5��$�'�'�+B������)�+�	�A��!�H�	r,c��tgd�gd�g|j��}ddddddtjtjfD]�}t	|j
d�D�cgc]}t
|dd�|f|�	���}}tt
||d�
�|�t	|j
d�D�cgc]}t
||dd�f|�	���}}tt
||d�
�|���tjdd|j��jddd�}|j}dd
dddtjtjdfD�]}tjt	||�d�D]�}|\}	}
|	dkr|	|z
}	|
dkr|
|z
}
|	|
k(rttt|||�
��:t
|||�
�}||	|
zz
}|	|
krEt	|j
|�D�cgc]#}t
|ddj||��|�	���%}
}nNt	|j
|�D�cgc]-}t
|ddj||��j |�	���/}
}t||
�����ycc}wcc}wcc}wcc}w)Nr��rsr�r�r7r�rrorqrr��ord�r�r��rsr�r�r�)rrr&rr�r�rrr r�r�r��combinationsrr!�taker�)rJr��order�k�	expected0�	expected1�B�ndr��row_axis�col_axisr��k_indexr(s              r*�	test_axisz_TestNormGeneral.test_axisJsc��
�9�i�(����8���B��1�a��B�F�F�R�V�V�G�<�	G�E�;@������;L�M�a��a��1��g�5�1�M�I�M���Q�E�� :�I�F�;@������;L�M�a��a��1��g�5�1�M�I�M���Q�E�� :�I�F�		G�
�I�I�a��4�7�7�+�3�3�A�q�!�<��
�V�V���B��2�q�"�&�&�2�6�6�'�5�A�	5�E�!�.�.�u�b�S�"�~�q�A�
5��%)�"��(��a�<���N�H��a�<���N�H��x�'�!�*�d�A�5�t�L��Q�E��5�A�!�H�x�$7�8�G��(�*�-2�1�7�7�7�3C�-D�$F�()�%)��1����1�7��)C��$O�$F��$F�.3�1�7�7�7�3C�-D�$F�()�%)��1����1�7��)C�)E�)E�5�$Q�$F��$F�'��8�4�)
5�	5��N��M��,$F��$Fs�"I-�1I2�"(I7�'2I<c�t�tjdd|j��jddd�}d}d}t	|dd�	�}t	|ddd
��}ttj|�||jdd���d
}t|j|k(|j|j|dd��ddddddtjtjfD]�}t|j�D]�}t	|||�	�}t	|||d
��}ttj|�||j||���t|j�}d||<t|�}t|j|k(|j|j|||������dddddtjtjddf	D]�}tj t|j�d�D]�}t	|||�	�}t	|||d
��}ttj|�||j||���t|j�}d||d<d||d<t|�}t|j|k(|j|j|||������y)Nror�r7rqrrrszorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}r�T)r�r��keepdims)rU)rororor�rr�r��nuc)r&r rr�rr�squeeze�formatrr�rr�r�r�r�r��permutations)	rJr��allclose_err�	shape_errr(�found�expected_shaper�r�s	         r*�
test_keepdimsz_TestNormGeneral.test_keepdimsosy���I�I�a��4�7�7�+�3�3�A�q�!�<��.��Q�	���t�$�/���Q�D�t�d�;����
�
�5�)�8� ,� 3� 3�D�$� ?�	A�"������~�-�� � ����n�d�D�I�	K��B��1�a��B�F�F�R�V�V�G�<�
	Q�E��1�6�6�]�	
Q����u�1�5���Q�E��D�A����
�
�5� 1�8�(4�(;�(;�E�1�(E�G�!%�a�g�g���$%��q�!�!&�~�!6������~�5�!�(�(����n�e�Q�O�Q�	
Q�
	Q��B��2�q�"�&�&�2�6�6�'�5�%�H�	Q�E��+�+�E�!�&�&�M�1�=�

Q����u�1�5���Q�E��D�A����
�
�5� 1�8�(4�(;�(;�E�1�(E�G�!%�a�g�g���'(��q��t�$�'(��q��t�$�!&�~�!6������~�5�!�(�(����n�e�Q�O�Q�

Q�	Qr,N)rTrUrVrnr~r�r�r�rXr,r*rlrl�s��F�
')�R�<#5�J(Qr,rlc�B�eZdZejZd�Zd�Zd�Zd�Zd�Z	y)�_TestNorm2Dc�f�tt|jgg|j���d�y)Nr7r�)rrrrrRs r*�test_matrix_emptyz_TestNorm2D.test_matrix_empty�s$���T�$�*�*�b�T����*�9�:�C�@r,c��|jgd�gd�g�}tjd}d}||z}|D�]�}|j|�}t	|tj
�}|j
||�t|d�t�5}|jtd�t	|d�}|j
||�t|d�ddd�t	|d	�}|j
||�t|d�t	|d
�}|j
||�t|d�t	|d�}|j
||�t|d�t	|tj
�}|j
||�t|d�t	|d
�}|j
||�t|d�t	|d�}|j
||�tjj|dd�����y#1swY��.xYw)Nr�r:rp�fdFDrarrr�r`rorqg�LX�z��?r�r�r�gU&,t=�@r�r�)rr&rsr�rrrhrrrtrur�rvs	         r*�test_matrix_return_typez#_TestNorm2D.test_matrix_return_type�s����J�J�	�9�-�.���l�l�<�0��
�
��-�/�	�"�%	N�I����)�$�B��b�2�6�6�'�"�B����R��$���C�(�"�$�
-���
�
�>�+G�H��"�b�\��� � ��R�(�#�B��,�	
-��b�!��B����R��$���C�(��b�!��B����R��$���N�3��b�"��B����R��$���C�(��b�"�&�&�!�B����R��$���C�(��b�%��B����R��$���C�(��b�%��B����R��$�
�J�J�*�*�2�/A�1�*�M�K%	N�
-�
-�s
�AG9�9H	c�j�|jddgddgg|j��}tt|�d�tt|d�d�tt|d�d	�tt|t�d
�tt|t�d�tt|d�d	�tt|d�d
�tt|d�d�tt|d�d�ttt|d�ttt|d�ttt|d�y)Nrorrr�r�r7g���T"@r�r�r�g(@rcr�rerqg��W�?"@r�gї�ʄ�?�nofror�r)rrrrrrr!r�s  r*�test_matrix_2x2z_TestNorm2D.test_matrix_2x2�s����J�J��A���A��'�t�w�w�J�7���D��G�Y�/��D��E�N�I�6��D��E�N�D�1��D��C�L�$�/��D��S�D�M�3�/��D��A�J��-��D��B�K��-��D��A�J�(:�;��D��B�K�)<�=��j�$��7�3��j�$��2�.��j�$��1�-r,c���d|jgd�gd�gd�g|j��z}tt|�d�tt|d�d�tt|d�d	�tt|t�d
�tt|t�d�tt|d�d
�tt|d�d�tt|d�d�tt|d�d�y)Ng�������?r�)r�rr�)rrrqror7grj=Q0�?r�r�g�B+pc�?g�������?g333333�?ror`r�g�������?rqg�&��.d�?r�gܸՠ���?)rrrrrr�s  r*�test_matrix_3x3z_TestNorm2D.test_matrix_3x3�s���
��J�J�	�9�i�8����J�H�
I���D��G�%9�:��D��E�N�,@�A��D��E�N�,>�?��D��C�L�#�.��D��S�D�M�3�/��D��A�J��,��D��B�K��-��D��A�J�(;�<��D��B�K�)<�=r,c���|jgd�gd�g|j��}tjdd|j��j	ddd�}ttt|d	d
�ttt|dd
�tttddgd	d�tttddgdd�tttddgdd�d
D]G}ttt||d�ttt||d�ttt||d��Ittt|dd�ttt|dd�ttt|dd�y)Nr�r�r7ror�rqrrrsr�rr��test�rrrrQ)rorq�rqrr�rrorq)	rrr&r r�rr!rr)rJr�r�r�s    r*�
test_bad_argsz_TestNorm2D.test_bad_args�s��
�J�J�	�9�-�T�W�W�J�=���I�I�a��4�7�7�+�3�3�A�q�!�<��
	�j�$��5�!�4��j�$��5�!�4��j�$��A���t�<��j�$��A���t�<��j�$��A����=��	>�E��*�d�A�u�d�;��*�d�A�u�f�=��*�d�A�u�f�=�	>�	�i��q�$��2��i��q�$��7��j�$��4��;r,N)
rTrUrVr&rr�r�r�r�r�rXr,r*r�r��s)��
�H�H�E�A�1N�f.� >�"<r,r�c��eZdZy)�	_TestNormNrrXr,r*r�r�r�r,r�c��eZdZd�Zd�Zd�Zy)�TestNorm_NonSystematicc��tjdtj��}tt	|d��dd��y)N�
r7rrr�g�����L)@rqr�)r&r �
longdoubler0rrEs  r*�test_longdouble_normz+TestNorm_NonSystematic.test_longdouble_norms*��
�I�I�b��
�
�.����Q�A���q�Ar,c��tjdgtj��}tt	|d��dd��y)Ni�r7rrr�lr�r�)r&r�int32r0rrEs  r*�test_intminz"TestNorm_NonSystematic.test_intmins,��
�H�H�h�Z�r�x�x�0����Q�A����Cr,c���tjdtj��}d|d<d|d<d}ttjj|d�	�|d
��|j
tj�}ttjj|d�	�|d��|j
tj�}ttjj|d�	�|d
��y)N�rqr7y@@ry�@rog���V;'@rrr�r�r��	r�)	r&r��clongdoubler0rrr��
complex128r>)rJr�r@s   r*�test_complex_high_ordz,TestNorm_NonSystematic.test_complex_high_ord$s����H�H�T����0����!����!������	�	���q�a�� 8�#�r�J�
�H�H�R�]�]�#����	�	���q�a�� 8�#�q�I�
�H�H�R�\�\�"����	�	���q�a�� 8�#�q�Ir,N)rTrUrVr�r�r�rXr,r*r�r�s��B�D�
Jr,r�c�(�eZdZejZdZy)�_TestNormDoubleBase�N)rTrUrVr&rrrirXr,r*r�r�2s��	���B�
�Cr,r�c�(�eZdZejZdZy)�_TestNormSingleBaser�N)rTrUrVr&r�rrirXr,r*r�r�7s��	���B�
�Cr,r�c�(�eZdZejZdZy)�_TestNormInt64Baser�N)rTrUrVr&�int64rrirXr,r*r�r�<s��	���B�
�Cr,r�c��eZdZy)�TestNormDoubleNrrXr,r*r�r�Ar�r,r�c��eZdZy)�TestNormSingleNrrXr,r*r�r�Er�r,r�c��eZdZy)�
TestNormInt64NrrXr,r*r�r�Ir�r,r�c��eZdZd�Zd�Zy)�TestMatrixRankc��tdttjd���tjd�}d|d<tt|�d�tttjd��d�ttgd��d�tttjd	��d�ttdg�d�tj
|tjd�tjd�g�}tt|�tj
gd
���ttd�d�t
td�5t|dd�
�ddd�y#1swYyxYw)Nrsr��r�r�rrrur)rorrrro)rs)rrrsrz#`tol` and `rtol` can't be both set.g{�G�z�?)�tolrV)rrr&rvr;rrr!)rJ�I�mss   r*�test_matrix_rankzTestMatrixRank.test_matrix_rankOs���Q��B�F�F�1�I�.�/��F�F�1�I����&�	��[��^�Q�'��[����&�!1�2�A�6��[��.��2��[����$��0�!�4��[�!��%�q�)�
�X�X�q�"�&�&��)�R�X�X�e�_�5�
6���[��_�b�h�h�y�&9�:��[��^�Q�'�
 ��>�
�	0�
��t�$�/�	0�	0�	0�s�"E:�:Fc���tdttjd�d���tdttjd�d���tdttj
d�d���tjd�}d|d<td	t|d���d
|d<tdt|dd���td	t|dd
���y)NrsTr�rorurr�r�rrg:�0�yE>g��|"�BE>)r?r�g�;䡈�E>)rrr&rvr�r;)rJr�s  r*�test_symmetric_rankz"TestMatrixRank.test_symmetric_rankhs����Q��B�F�F�1�I��>�?��Q��B�G�G�F�O�t�D�E��Q��B�H�H�V�$4��E�F��F�F�1�I����&�	��Q��A��6�7���&�	��Q��A��7�C�D��Q��A��7�C�Dr,N)rTrUrVr�r�rXr,r*r�r�Ms
��0�2Er,r�c�B�tjjd�}td�D]r}|j	d��}|dd�df|dd�dfz|dd�df<tt
|�d�|dd�d	f|dd�d
fz|dd�df<tt
|�d��ty)
Ni�3r)�(r���sizerorqrr�rsr�rrrm)r&r��RandomStater��normalrr)�rng�i�Xs   r*�test_reduced_rankr�vs���
�)�)�
�
��
)�C�
�3�Z�(���J�J�H�J�%���A�q�D�'�A�a��d�G�#��!�Q�$���[��^�Q�'��A�q�D�'�A�a��d�G�#��!�Q�$���[��^�Q�'�(r,c	��eZdZejZd�Zejjddggd��d��Z	d�Z
d�Zd�Zejjd	gd
��ejjdgd��ejjd
ejejejej g�d����Zy)�TestQRc��t|�}|j}|j\}}t||�}t	j
|d��}|j|j}	}t|j|k(�t|	j|k(�tt||��tt|	|��t|j||fk(�t|	j||fk(�tt||	�|�tt|jj�|�tj|��ttj |	�|	�t	j
|d��\}
}t|
j|k(�t|j|k(�tt|
|��tt||��t|
j||fk(�t|j||fk(�tt|
|�|�tt|
jj�|
�tj|��ttj |�|�t	j
|d��}t|j|k(�tt||��t||�y)N�complete��mode�reducedr)r$r/r�r�r�qr�Q�Rrr%rrr�r�r&rv�triu)
rJr1�a_type�a_dtyper�r�r�r@r�r��q1�r1�r2s
             r*�check_qrzTestQR.check_qr�s���a����'�'���w�w���1���1�I���i�i��
�+���u�u�c�e�e�1������7�"�#�����7�"�#��
�1�f�%�&��
�1�f�%�&�����A�q�6�!�"�����A�q�6�!�"��C��1�I�q�)��C������
�A�.����q�	�:��B�G�G�A�J��*����1�9�-���B�����G�#�$�����G�#�$��
�2�v�&�'��
�2�v�&�'�����Q��F�"�#�����Q��F�"�#��C��B�K��+��C����	�	��R�0�"�&�&��)�<��B�G�G�B�K��,��Y�Y�q�s�
#������G�#�$��
�2�v�&�'��B��#r,r�r�)�rrrr�rjc��t||�}tj||f�}|j|�tjj|d��\}}t
|jtj�t
|jtj�t
|j||f�t
|j|f�y)N�rawr�)
r�r&r�r�rr�rr/rr�)rJr�r�r�r1�h�taus       r*�
test_qr_emptyzTestQR.test_qr_empty�s���
��1�I���H�H�a��V����
�
�a�������a�e��,���3��Q�W�W�b�i�i�(��S�Y�Y��	�	�*��Q�W�W�q�!�f�%��S�Y�Y���%r,c���|jddgddgddggtj��}tj|d�	�\}}t|jtjk(�t|jtjk(�t|jd
k(�t|jdk(�tj|jd�	�\}}t|jtjk(�t|jtjk(�t|jdk(�t|jdk(�y)
Nrorqrrrsr�r�r7r�r�r�r�r�)	rr&rrr�rr/r�r�)rJr1r�r�s    r*�
test_mode_rawzTestQR.test_mode_raw�s���
�J�J��A���A���A��/�r�y�y�J�A�����1�5�)���3�����2�9�9�$�%���	�	�R�Y�Y�&�'�����6�!�"���	�	�T�!�"����1�3�3�U�+���3�����2�9�9�$�%���	�	�R�Y�Y�&�'�����6�!�"���	�	�T�!�"r,c��|jddgddgg�}|jddgddgddgg�}dD]a}|j|�}|j|�}|j|�|j|�|j|j��cdD]m}dd|j|�zz}dd|j|�zz}|j|�|j|�|j|j��oy)	Nrorqrrrsr�r��fd��?)rr�r�r�)rJr1r2r�m1�m2s      r*�test_mode_all_but_economicz!TestQR.test_mode_all_but_economic�s����J�J��A���A��'�(���J�J��A���A���A��/�0���	 �B����"��B����"��B��M�M�"���M�M�"���M�M�"�$�$��	 ��	 �B��R�!�(�(�2�,�&�&�B��R�!�(�(�2�,�&�&�B��M�M�"���M�M�"���M�M�"�$�$��	 r,c	���t|�}|j}|jdd\}}t||�}t	j
|d��\}}t
|j|k(�t
|j|k(�t
t||��t
t||��t
|jdd||fk(�t
|jdd||fk(�tt||�|�tj|jd�}	tj|	|jdd|jdfdzz�}
ttt|dd�j�|�|
�ttj|ddd�dd�f�|�t	j
|d��\}}t
|j|k(�t
|j|k(�t
t||��t
t||��t
|jdd||fk(�t
|jdd||fk(�tt||�|�tj|jd�}	tj|	|jdd|jdfdzz�}
ttt|dd�j�|�|
�ttj|ddd�dd�f�|�t	j
|d��}
t
|
j|k(�t
t|
|��t|
|�y)	Nr�r�r�r�rq.r�r)r$r/r�r�rr�rr%rr
r&r	rrr�r�)rJr1r�r�r�r�r��qr�I_mat�stack_I_matr�r�r�s              r*�check_qr_stackedzTestQR.check_qr_stacked�s����a����'�'���w�w�r�s�|���1���1�I���y�y���,���1�����7�"�#�����7�"�#��
�1�f�%�&��
�1�f�%�&���������A��&�'���������A��&�'��F�1�a�L�!�,����A�G�G�B�K�(���o�o�e������������~�a�'7�7�9���F�8�A�r�2�#6�#;�#;�#=�q�A�;�O��B�G�G�A�c�1�a�i�L�1�1�5����1�9�-���B�����G�#�$�����G�#�$��
�2�v�&�'��
�2�v�&�'�������
�!�Q��'�(�������
�!�Q��'�(��F�2�r�N�A�.����B�H�H�R�L�)���o�o�e�����"�
����"����(9�9�;���F�8�B��B�#7�#<�#<�#>��C�'�	)��B�G�G�B�s�A�q�y�M�2�B�7��Y�Y�q�s�
#������G�#�$��
�2�v�&�'��B��#r,r�))rrrs)rsrrrur�r��
outer_size)rr�)rqrrrsrc�"�tjjd�}|j||z��j	|�}|j||z��j	|�}|j|�|j|d|zz�y)N�{r�r)r&r��default_rngr�r�r)rJrr�rr�r�r�s       r*�test_stacked_inputszTestQR.test_stacked_inputss|���i�i�#�#�C�(���J�J�J��-�J�.�5�5�b�9���J�J�J��-�J�.�5�5�b�9�����a� ����a�#�a�%�i�(r,N)rTrUrVr&rr�r�r�r.r�rrrrrrrrrXr,r*r�r��s����H�H�E�%$�P�[�[���c�3�Z�*��

&��

&�#�, �"+$�Z�[�[���V�&���[�[���\�,!�"��[�[���T�
�	�	�2�9�9�
�
�
�B�J�J�$ �!�)�!�"��)r,r�c�8�eZdZejjdgd��ejjdejejejejf�ejjdddg�d����Zd�Zd	�Z
y
)�TestCholeskyr�)r�r�rrrr)�2r)rrr�r�r/rDFTc�^�tjjd�tjj|�}tj|tj
�r"|dtjj|�zz}t
tt|���}d|ddtj|j|�j�|�}tj||��}tjj||��}|r4tj|j|�j�|�}n3tj||j|�j��}d|jdztj |�j"z}t%||||�d	|�d
|�d
|����tj&|dd�
�}	t)tj*tj,|	���t)tj*|	dk\��y)Nror)r�r�r�r7�rDi�r� �
)�atolrUr�)�axis1�axis2)r&r�r��randnr��complexfloatingr�r�r�r
r�r�rr�choleskyr��finfo�epsr�diagonalrr��isreal)
rJr�r/rDr1�tr�r2rr�s
          r*�test_basic_propertyz TestCholesky.test_basic_property's���	�	�	���q���I�I�O�O�U�#��
�=�=��� 2� 2�3��B�r�y�y����.�.�.�A���s�5�z�"�#����"�#���I�I�a�k�k�!�n�)�)�+�Q�/���J�J�q��&���I�I���q���.����	�	�!�+�+�a�.�-�-�/��3�A��	�	�!�Q�[�[��^�0�0�2�3�A��Q�W�W�Q�Z��"�(�(�5�/�"5�"5�5����1�4�E�7�!�E�7�"�Q�C�r�!��1M�N�
�K�K���2�.������r�y�y��|�$�%�����q�A�v��r,c�"�Gd�dtj�}tjdtj��j	|�}tj|�}t|j|j�t|jjtju�tt|tj��tjdtj��j	|�}tj|�}t|j|j�t|jjtju�tt|tj��y)Nc��eZdZy)�/TestCholesky.test_0_size.<locals>.ArraySubclassNrrXr,r*rr'Lrr,rr:r7)rorr)r&r'r;r<r�rrrr�rr/r$r=r%r>r?s    r*r)zTestCholesky.test_0_sizeKs���	�B�J�J�	��H�H�Y�b�g�g�.�3�3�M�B���o�o�a� ���Q�W�W�c�i�i�(���	�	���"�*�*�,�-��
�3��
�
�+�,��H�H�Y�b�l�l�3�8�8��G���o�o�a� ���Q�W�W�c�i�i�(���	�	���"�,�,�.�/��
�3��
�
�+�,r,c�:�tjddgddgg�}ttj|�tj|d���ttj|d��tj|�j
j
��y)Ny�?y�y@y@FrT)r&rrrrr�r�)rJr1s  r*�test_upper_lower_argz!TestCholesky.test_upper_lower_arg[sl���H�H�t�T�l�T�4�L�1�2���V�_�_�Q�'�����%�)H�I���O�O�A�T�*��O�O�A�� � �%�%�'�	
r,N)rTrUrVr�r�r.r&r�r=r>r�r$r)r)rXr,r*rr%s����[�[����@���[�[����"�*�*�b�j�j�"�,�,��
�
�F���[�[����%��� � � ��� �8-� 	
r,rc�f�eZdZejd�Zejd�Zejgd�gd�gd�g�Ze	ejjee�e�ee
d�5ejjedd�ejfe�ddd�y#1swYyxYw)�	TestOuterrrr�r�)rrqrsz$Input arrays must be one-dimensionalN)rTrUrVr&r �arr1�arr2rr(rr�outerrr!�newaxisrXr,r*r+r+gs����2�9�9�Q�<�D��2�9�9�Q�<�D��r�x�x�	�	�	�	��H��r�y�y���t�T�2�H�=�	��:�
�3�	�	�	����Q��
�
�]�+�T�2�3�3�3�s�0.B'�'B0r+c�p�tjdk(rd}nd}tjtjfD]�}tj
d|��}|j
|jj|��}|j
|jjd��j�}t|jjd�tjtjtjfD].}||�}t|||��t|||���0��y)N�little�<rQrsr7rk�=)�sys�	byteorderr&r�r=rvr�r/�newbyteorder�byteswaprrr2r�r�r)�native�dttr��n_arr�sw_arr�routiner@s       r*�test_byteorder_checkr=xs���
�}�}�� ������
�
�B�J�J�'�5���f�f�Q�c�"��������/�/��7�8�����#�)�)�0�0��5�6�?�?�A���S�Y�Y�(�(�#�.��
�
�F�J�J����<�	5�G��#�,�C��s�G�E�N�3��s�G�F�O�4�
	5�5r,r.r/c�8�tjddgddgg�}tjddgddgg�}tjgd��ddd�}||d<||d<ttjj
tjj|�y)Nrorqrrrs)rsrsrqrq.rj)r&rr;rrrr2)�
invertible�non_invertibler�s   r*� test_generalized_raise_multilooprA�s���
���A�q�6�A�q�6�*�+�J��X�X��1�v��1�v�.�/�N�
�����q�t�!�t�$�A�
�A�c�F��A�d�G��"�)�)�'�'�������:r,z?skipping test that uses fork because there are multiple threadsc���d}	tj�}dk(r�tjd�tjd�ddl}|j|jd�	tjjj�	tj$dgg�}tjjj'ddd|d||dd�	tj tj"�ytj*�\}}tj,|�|k7rt	j
d�yy#ttf$rt	j
d�Y��RwxYw#t$rY��t$r'tj tj"�Y��wxYw#t$r-}dt)|�vrtj |�Yd}~��d}~wwxYw)	N�zNot POSIX or fork failed.rrorjr`zDORGQR parameter number 5zNumpy xerbla not linked in.)�os�fork�OSError�AttributeErrorr��skip�close�resource�	setrlimit�RLIMIT_COREr&r�lapack_lite�xerblar!r��_exit�	EX_CONFIGr�dorgqrrF�wait�WEXITSTATUS)�	XERBLA_OK�pidrJr1r��statuss      r*�test_xerbla_overriderW�sq���I�1��g�g�i��
�a�x�
�����
���������8�/�/��8�	#��I�I�!�!�(�(�*�
	$����2�$�� �A��I�I�!�!�(�(��1�a����1�a��
�	��������g�g�i���V�
�>�>�&�!�Y�.��K�K�5�6�/��I
�^�$�1����/�0�1���	���	#��H�H�R�\�\�"�	#���	$�*�c�!�f�4�����#���		$�sB�E�((E.�AF+�$E+�*E+�.	F(�9+F(�'F(�+	G!�4"G�G!zCannot start subprocessc�,�ddg}tjd�}|D]v}|jdd|��}tjt
jd|g�|jdd|��}tjt
jd|g��xy)	NzPyQt5.QtWidgets�IPythonz�
    import sys
    {before}
    try:
        import {bad_lib}
    except ImportError:
        sys.exit(0)
    {after}
    x = np.ones(2, dtype=np.float32)
    sys.exit(0 if np.allclose(x.dot(x), 2.0) else 1)
    zimport numpy as np�)�before�after�bad_libz-c)r\r[r])�textwrap�dedentr��
subprocess�
check_callr4�
executable)�bad_libs�templater]�codes    r*�test_sdot_bug_8577rf�s���"�9�-�H����
 �
	�H��<�����&:�"�'.��0�����s�~�~�t�T�:�;����%9�"�'.��0�����s�~�~�t�T�:�;�<r,c�N�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�TestMultiDotc
��tjjd�}tjjd�}tjjd�}tt|||g�|j	|�j	|��tt|||g�tj|tj||���y�N�r�rq�rqr��r&r�rrr)rJr�r��Cs    r*�(test_basic_function_with_three_argumentsz5TestMultiDot.test_basic_function_with_three_arguments�s���
�I�I���V�$���I�I���V�$���I�I���V�$���I�q�!�Q�i�0�!�%�%��(�,�,�q�/�B��I�q�!�Q�i�0�"�&�&��B�F�F�1�a�L�2I�Jr,c�"�tjjd�}tjjd�}tt||g�|j	|��tt||g�tj||��yrjrm)rJr�r�s   r*�&test_basic_function_with_two_argumentsz3TestMultiDot.test_basic_function_with_two_arguments�sb���I�I���V�$���I�I���V�$���I�q�!�f�-�q�u�u�Q�x�8��I�q�!�f�-�r�v�v�a��|�<r,c��tjjd�}tjjd�}tjjd�}tjjd�}tt||||g�|j	|�j	|�j	|��y)Nrkrl�rqrorm)rJr�r�rn�Ds     r*�9test_basic_function_with_dynamic_programming_optimizationzFTestMultiDot.test_basic_function_with_dynamic_programming_optimizations���
�I�I���V�$���I�I���V�$���I�I���V�$���I�I���V�$���I�q�!�Q��l�3�Q�U�U�1�X�\�\�!�_�5H�5H��5K�Lr,c�B�tjjd�}tjjd�}tjjd�}tjjd�}tt||||g�jd�y)Nrqrlrkrr��r&r�rrr�)rJ�A1dr�rnrts     r*�test_vector_as_first_argumentz*TestMultiDot.test_vector_as_first_argumentsq���i�i���q�!���I�I���V�$���I�I���V�$���I�I���V�$��	�Y��Q��1�~�.�4�4�d�;r,c�B�tjjd�}tjjd�}tjjd�}tjjd�}tt||||g�jd�y)Nrkrlrq)r�rw)rJr�r�rn�D1ds     r*�test_vector_as_last_argumentz)TestMultiDot.test_vector_as_last_argumentsq���I�I���V�$���I�I���V�$���I�I���V�$���i�i���q�!��	�Y��1�a��~�.�4�4�d�;r,c�B�tjjd�}tjjd�}tjjd�}tjjd�}tt||||g�jd�y)NrqrlrkrXrw)rJrxr�rnr{s     r*�&test_vector_as_first_and_last_argumentz3TestMultiDot.test_vector_as_first_and_last_argument$sr���i�i���q�!���I�I���V�$���I�I���V�$���i�i���q�!��	�Y��Q��3�/�0�6�6��;r,c
���tjjd�}tjjd�}tjjd�}tjd�}t|||g|��}||usJ�t	||j|�j|��t	|tj
|tj
||���y)Nrkrl�r(�r&r�r;rrr)rJr�r�rnr(�rets      r*�test_three_arguments_and_outz)TestMultiDot.test_three_arguments_and_out.s���
�I�I���V�$���I�I���V�$���I�I���V�$���h�h�v�����A�q�	�s�+���c�z��z��C����q����a��1��C�����2�6�6�!�Q�<�!8�9r,c�J�tjjd�}tjjd�}tjd�}t||g|��}||usJ�t	||j|��t	|tj
||��y)Nrkrl)r�r�r�r�)rJr�r�r(r�s     r*�test_two_arguments_and_outz'TestMultiDot.test_two_arguments_and_out;sz���I�I���V�$���I�I���V�$���h�h�v�����A��C�(���c�z��z��C����q��*��C�����1��.r,c���tjjd�}tjjd�}tjjd�}tjjd�}tjd�}t||||g|��}||usJ�t	||j|�j|�j|��y)Nrkrlrs)r�ror�r�)rJr�r�rnrtr(r�s       r*�-test_dynamic_programming_optimization_and_outz:TestMultiDot.test_dynamic_programming_optimization_and_outEs���
�I�I���V�$���I�I���V�$���I�I���V�$���I�I���V�$���h�h�v�����A�q�!��#�.���c�z��z��C����q����a��!4�!4�Q�!7�8r,c	�.�tjjd�tjjd�tjjd�tjjd�tjjd�tjjd�g}tjgd�gd�gd	�gd
�gd�gd�g�}tjgd
�gd�gd�gd�gd�gd�gt��}|dz}t	|d��\}}ttj|dd�dd�f�tj|dd�dd�f��ttj|�tj|��y)N)��#)r��)r�r�)r�r�)r��)r�r�)r�g��@gþ@g�O�@g�1�@g���@)r�r�g��@g�@gջ@g��@)r�r�r�gp�@g��@g��@)r�r�r�r�g@�@gX�@)r�r�r�r�r�g��@)r�r�r�r�r�r�)rrororrrrrr)rrrqrrrrrr)rrrrrrrrr)rrrrrsr�)rrrrrr�)rrrrrrr7roT)�return_costsr�)r&r�r�intrrr�)rJ�arrays�
m_expected�
s_expectedr�r�s      r*�test_dynamic_programming_logicz+TestMultiDot.test_dynamic_programming_logicQsC���)�)�"�"�8�,��)�)�"�"�8�,��)�)�"�"�7�+��)�)�"�"�7�+��)�)�"�"�8�,��)�)�"�"�8�,�.���X�X�I�I�I�I�I�I�K�L�
��X�X�6�6�6�6�6�6�8�
@C�D�
�	�a��
�,�V�$�G���1�	�B�G�G�A�c�r�c�1�2�g�J�/��G�G�J�s��s�A�B�w�$7�8�	:��B�G�G�A�J����
�(;�<r,c��tttg�ttttjj	d�g�y)Nr)rr!rr&r�rRs r*�test_too_few_input_arraysz&TestMultiDot.test_too_few_input_arraysos,���j�)�R�0��j�)�b�i�i�.>�.>�v�.F�-G�Hr,N)rTrUrVrorqruryr|r~r�r�r�r�r�rXr,r*rhrh�s<��K�=�M�<�<�<�:�/�
9�=�<Ir,rhc�2�eZdZejjdejd�dfejd�dfg�d��Zejjddd	g�d
��Z	ejjddd
g�d��Z
d�Zy)�
TestTensorinvzarr, ind�rsr�rmrqrq�rrrrrqroc�z�tt�5tj||��ddd�y#1swYyxYw)N��ind)rrr�	tensorinv)rJr�r�s   r*�test_non_square_handlingz&TestTensorinv.test_non_square_handlingvs1��
�;�
'�	+����S�c�*�	+�	+�	+�s�1�:z
shape, ind)�rsr�rmrrrq)��rmrrroc���tjd�}||_tj||��}|j|d|jd|z}|j}t||�y)Nr��r1r�)r&rvr�rr�r)rJr�r�r1�ainvr(�actuals       r*�test_tensorinv_shapez"TestTensorinv.test_tensorinv_shape~s[��
�F�F�2�J��������!��-���7�7�3�4�=�1�7�7�4�C�=�0�������V�X�&r,r�rr�c��tjd�}d|_tt�5tj||��ddd�y#1swYyxYw)Nr�r�r�)r&rvr�rr!rr�)rJr�r1s   r*�test_tensorinv_ind_limitz&TestTensorinv.test_tensorinv_ind_limit�sE��
�F�F�2�J�����
�:�
&�	+����q�c�*�	+�	+�	+�s�A
�
Ac��tjd�}d|_tj|d��}tj
d�}t
tj||d�tjj||��y)Nr�r�ror�)	r&rvr�rr�r�r�	tensordot�tensorsolve)rJr1r�r2s    r*�test_tensorinv_resultz#TestTensorinv.test_tensorinv_result�s]���F�F�2�J���������q�)���G�G�B�K������T�1�a�0�"�)�)�2G�2G��1�2M�Nr,N)rTrUrVr�r�r.r&r�r�r�r�r�rXr,r*r�r�ts����[�[���Z�	�����	��"�	�����	�Q��*
��+�	�+��[�[���\���,
��
'��
'��[�[���U�	�2�%
��+��+�Or,r�c���eZdZejjdejd�dfejd�dfg�d��Zejjdgd��d	��Z	y)
�TestTensorsolveza, axesr�Nr�)rrqc��tt�5tj|jdd�}tj|||��ddd�y#1swYyxYw�Nrqr�)rrr&r�r�rr�)rJr1r�r2s    r*r�z(TestTensorsolve.test_non_square_handling�sK��
�;�
'�	0����������$�A����q�!�$�/�	0�	0�	0�s�;A�Ar�))rqrrr�)rrrsrsrr)rrrrrrc	�*�tjj|�}tj|jdd�}tj
j
||�}ttj||t|j���|�yr�)
r&r�rr�r�rr�rr�r�)rJr�r1r2r�s     r*�test_tensorsolve_resultz'TestTensorsolve.test_tensorsolve_result�sc��
�I�I�O�O�U�#���G�G�A�G�G�B�Q�K� ���I�I�!�!�!�Q�'������Q���A�G�G��=�q�Ar,)
rTrUrVr�r�r.r&r�r�r�rXr,r*r�r��sz���[�[���Y�	�����	��%�	�����	�V�$�)
��0�	�0�
�[�[���W�/��B��Br,r�c��tjddgddggd��}ttd�5t	j
|�ddd�y#1swYyxYw)Nror�rqr��float16r7zunsupported in linalg)r&rrr)rr)r�s r*�test_unsupported_commontyper��sK��
�(�(�Q��G�a��V�$�I�
6�C�	�Y�(?�	@����������s�A
�
Az,Bad memory reports lead to OOM in ci testingc��d}tjd|gtj��}tjddgtj��}d|d<tj||�}t|dd�y)N�ror7)rr�)r&r;r�r�rr)r�r1r2r�s    r*�test_blas64_dotr��s]��
�A�
���!�Q��r�z�z�*�A�
����A��b�j�j�)�A��A�d�G�
���q�!��A���4��!�r,z*Numpy not compiled with 64-bit BLAS/LAPACKc
���tj}tjjj}d}d}|}tj
ddg|��}tj
dg|��}tj
dg|��}|||||||dd�}t
|dd�t
|d|�t
|d|�t|j��}	td	|	cxkxr
d
k�yc�y)Nlror7r�r�infor�r�r�l)
r&r=rrM�dgeqrfr;rr��itemr)
r/�lapack_routiner�r��ldar1�workr��results�lworks
          r*�!test_blas64_geqrf_lwork_smoketestr��s���
�J�J�E��Y�Y�*�*�1�1�N��A��A�
�C�	���!�Q��u�%�A�
�8�8�Q�C�u�%�D�
�(�(�A�3�e�
$�C��Q��1�c�3��b�!�<�G�����!�$�����q�!�����q�!�
��	�	���E��E�E�!�E�!�"�!�"r,c���tjd�jd�}tjj	|�}tj
gd�gd�gd�g�}t
||�y)N�<�rrrsr�)rr�r��)r��r	�&)r��.�4�:)r&r r�rr!rr�r�r�r(s   r*�
test_diagonalr��sX��	�	�	�"�
���i�(�A�
�Y�Y�
�
��
"�F��x�x����	
��H����"r,c���tjd�jd�}tjj	|�}tj
gd��}t
||�y)Nr�r�)�$�t��)r&r r�r�tracerrr�s   r*�
test_tracer��sF��	�	�	�"�
���i�(�A�
�Y�Y�_�_�Q�
�F��x�x��'�H����"r,c��tjd�jd�}tjj	||dz�}tj
gd�gd�gd�g�}t
||�gd�}gd�}tjj	||�}tgd��}t
||�ttd�5|dd�dd�f}tjj	||�ddd�y#1swYyxYw)	Nr�rro)r�rqr�r�r�)r�r�r�z8input arrays must be \(arrays of\) 3-dimensional vectors)	r&r r�r�crossrrrr!)r�r�r(rpr^�x_2dims      r*�
test_crossr��s���
�	�	�!����V�$�A�
�Y�Y�_�_�Q��A��
&�F��x�x������H����"�	�A��A�
�Y�Y�_�_�Q��
"�F��\�"�H����"�	��C�
�(��1�a�b�5���
�	�	�����'�(�(�(�s�,C8�8Dc���tjd�jd�}tjj	||�dk(sJ�tjj	||ddg��dk(sJ�y)Nr�r��7rQr�)r&r r�rr�)r�s r*�test_tensordotr�	sb��
�	�	�!����V�$�A�
�9�9���q�!�$��*�*�*�
�9�9���q�!�6�6�*:��;�r�A�A�Ar,c���tjd�jd�}tjj	||j
�}tjddgddgg�}t||�y)Nr�r�r��r)r&r r�rr
r�rrr�s   r*�test_matmulr�!	s[��	�	�	�!����V�$�A�
�Y�Y�
�
�a����
%�F��x�x�!�R��2�r�(�+�,�H����"r,c�P�tjd�jd�}tjj	|�}|j
}t
||�ttd�5tjj	|dd�df�ddd�y#1swYyxYw)Nr�r�z$array must be at least 2-dimensionalr)	r&r r�r�matrix_transposer�rrr!r�s   r*�test_matrix_transposer�+	s���
�	�	�!����V�$�A�
�Y�Y�
'�
'��
*�F��s�s�H����"�	��:�
�,�	�	�	�"�"�1�Q��T�7�+�,�,�,�s�,'B�B%c�T�tjd�jd�}tjj	|�}t|tjd�d��tjj	|d��}t|tjdgg�d��y)Nr�r��^)ː,@rr�r4T�r�)r&r r�r�matrix_normrr=r)r�r�s  r*�test_matrix_normr�8	su��
�	�	�!����V�$�A�
�Y�Y�
"�
"�1�
%�F����
�
�7� 3�A�F�
�Y�Y�
"�
"�1�t�
"�
4�F������7�)�� 5�a�Hr,c�"�tjd�jd�}tjj	|�}t|tjd�d��tjj	|d��}t|tjgd��d��tjj	|d	�
�}tjddd�
�}t|j|j�t||d��y)Nr�rr�rrr�rr�)g�|a2�@gsh��|? @gDio�I#@Tr�r�r=r7)r&r r�r�vector_normrr=r�fullrr�r�s   r*�test_vector_normr�C	s���
�	�	�!����V�$�A�
�Y�Y�
"�
"�1�
%�F����
�
�7� 3�A�F�
�Y�Y�
"�
"�1�1�
"�
-�F������0�1�!���Y�Y�
"�
"�1�t�
"�
4�F��w�w�v�w�i�8�H�����x�~�~�.�����;r,)r�r�)��__doc__rDr4r��	threadingr�r^r`r��numpyr&rrrrrrr	r
�numpy._corer�numpy.exceptionsrr
rrrr�numpy.linalgrrrrr�numpy.linalg._linalgr�
numpy.testingrrrrrrrrr r!�numpy.linalg.lapack_lite�ImportErrorr+r0r8r:r<rZrDr^r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrr0r5rCrKrSrZrernrsrr�r�r�r�r�r�r�r�r�r�r�r�r�r.r/rr6r<rSr[rcrlr�r�r�r�r�r�r�r�r�r�r�r�rr+r=r4rA�active_countrWr�rfrhr�r�r�rHr�r�r�r�r�r�r�r�r�r�r�)r�s0r*�<module>r�s����
�
������
��P�P�P� �&�4�4��P�P�>����
	�#�*�.��9�5�
7�
���,�,�,��	�	���t��
����8��x��r�2�h��R��)��8��b�"�X�V�,�.��x��r�2�h��R��)��8��b�"�X�V�,�.��z��r�2�h��R��)��8��l�L�1��@�B��y��w��'�&�&�)9�:�'�J��g�w�'�w�7�9��y��w��'�&�&�)9�:�'�J��g�w�'�w�7�9��{��w��'�&�&�)9�:�'�J��0�2J�K�SZ�[�]��u��r�x�x��f�-��r�x�x��F�+��J� ��u��y�y�~�~�a��#��y�y�~�~�a� �"��u��y�y�~�~�a��#��y�y�~�~�a� �"��z��A���A����1�v��; � 
� ��F��;��~��l�L�1��@��b�"�X�V�,�.��~��r�2�h��R��2�r�(�3�6�B��\��0�2��~��l�L�1��@��b�"�X�V�,�.��~��r�2�h��R��2�r�(�3�6�B��\��0�2����/�1L�M�U\�^��g�w�'�w�7�9�����g�&��'�(:�W�g�<N�O�W^�`��0��@�B����/�1L�M�U\�^��g�w�'�w�7�9�����g�&��'�(:�W�g�<N�O�W^�`��0��@�B�� ��/�1L�M�U\�^��w��(�6�6�*:�;�7�K�M�� ���g�&��'�(:�W�g�<N�O�W^�`��w��(�6�6�*:�V�V�<L�M�U\�]�_��v��y�y�~�~�a��$��y�y�~�~�a� �"��u��y�y�~�~�a��#��y�y�~�~�a� �"��u��y�y�~�~�a��#��y�y�~�~�a� �"��u��y�y�~�~�a��#��y�y�~�~�a� ��J� ��u��y�y�~�~�a��#��y�y�~�~�a� ��J� �e6!�6
�6��r��;��y��r�2�h��R��)��8����y��r�2�h��R��)��8����z��r�6�l�V�Q�K�0��@����z��r�6�l�V�Q�K�0��@����x��r�x�x��f�-���J� ��{��A���A��������r�2�h��R��)�*����}��y�y�~�~�a��#���/!�
���@�B�	 �	"�"��-'�`��	�	���1�1�.2�>�2�2�n�2�2��2�	F�n�	F�	I��	I�
+�>�
+�$�+�%�'F�+�H3�
�H3�V/�#�%D�/�0�h�0�.)�'�)H�)�-�,�-�66�#�%D�6�!+�h�!+�H5�5�,�#�%D�,�8�h��8�,,�)�+G�,�&�(�,��+1�$�&E�+1�\@)�y�@)�F
0�$�'�/�2�
0�	�y�	�0�*�,H�0�	�*�	�/�#�#�%D�#�*'1�h�'1�T3�%�'>�3�<.+�
�.+�b������5H�I�������I�J�S:�S:�K�S:�l?�)�+G�?�3-�3-�lB�%�'C�B�.8+�8+�v
=�
=�[Q�}�[Q�|u<�-�u<�p	��-�	�J�J�8
�-�
�
�-��

��
�
	�Y� 3�	�	�Y� 3�	�	�I�1�	�&E�&E�R
(�_)�_)�D?
�?
�D3�3�"5�*�����G�$B��C�;�D�;�������I����q� �L��N�.7�N�.7�b�����G�$=��>������<��?�<�D~I�~I�B&O�&O�RB�B�*������G��H��I�������|�#�F��H�#�H�#�4
#� #�(�6B�#�
,�I�<��OI�	�	�		��L Js�e7� f
�7f�?f

Youez - 2016 - github.com/yon3zu
LinuXploit