403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/numpy/linalg/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/numpy/linalg/tests/__pycache__/test_linalg.cpython-311.pyc
�

���c/����dZddlZddlZddlZddlZddlZddlZddlZddlZ	ddlm
Z
mZmZm
Z
mZmZmZmZddlmZddlmZmZmZmZddlmZddlmZmZmZmZmZddlm Z dd	l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+d
�Z,e&Z-d�d
�Z&d�Z.d�Z/d�Z0hd�Z1Gd�d��Z2d�Z3e	j4�5d��gZ6e6e3de2de
ddgddgge���e
ddge�����e2de
ddgddgge���e
ddge�����e2de
ddgddgge���e
gd�gd �ge�����e2d!e
d"d#gd$d%gge
���e
d&d"ge
�����e2d'e
d"d#gd$d%gge���e
d&d"ge�����e2d(e
d"d#gd$d%gge���e
gd)�gd*�ge�����e2d+e	j7d,e���e	j7d-e���d.h�/��e2d0e	j4�8d1d1��e	j4�8d1����e2d2e	j4�8d3d3��e	j4�8d3����e2d4d3d5gd6d7ggd5d3g��g
��z
Z6e6e3d8e2d9e
gd:�gd �ge���e
ddge�����e2d;e
ddgddgd<d=gge���e
gd>�e�����e2d?e
gd:�gd �ge���e
ddge�����e2d@e
ddgddgd<d=gge���e
gd>�e�����e2dAe
gdB�gdC�ge
���e
d&d"ge
�����e2dDe
dEdFgdGdHgdIdJgge
���e
gdK�e
�����e2dLe
gdB�gdC�ge���e
d&d"ge�����e2dMe
dEdFgdGdHgdIdJgge���e
gdK�e�����e2dNe
gdB�gdC�ge���e
d&d"gdOdPgge�����e2dQe
dEdFgdGdHgdIdJgge���e
d&d"gdOdPgdOdPgge�����e2dRe	j4�8d1dS��e	j4�8d1����e2dTe	j4�8d3dU��e	j4�8d3����e2dVe	j4�8dUd3��e	j4�8dU����e2dWe	j4�8dd7��e	j4�8d��d.h�/��e2dXe	j4�8d7d��e	j4�8d7��d.h�/��g��z
Z6e6e3dYe2dZe
ddgddgge���d��e2d[e
ddgddgge���d��e2d\e
dd#gd]d3gge
���d��e2d^e
dd#gd]d3gge���d��e2d_e	j7d,e���dd.h�/��e2d`d3d5gd5d3ggd��e2dae
ddgddgg��d��e2dbe	j4�8d3d3��d��g��z
Z6dc�Z9e6e9��z
Z6dd�Z:de�Z;e6e;��z
Z6Gdf�dg��Z<Gdh�die<��Z=Gdj�dke<��Z>Gdl�dme<��Z?Gdn�doe<��Z@Gdp�dqe<��ZAGdr�dse<��ZBdt�ZCdu�ZDGdv�dwe=e@��ZEGdx�dyeE��ZFGdz�d{e=e@��ZGGd|�d}eG��ZHGd~�de=e@��ZIGd��d�eI��ZJGd��d�e=e@��ZKGd��d�eK��ZLGd��d���ZMGd��d�e=e@��ZNGd��d�eNeM��ZOGd��d�e?eB��ZPGd��d�ePeM��ZQGd��d�e=e@��ZRGd��d�eR��ZSGd��d�e=e>e@eA��ZTGd��d�eT��ZUGd��d�e?eB��ZVGd��d�eV��ZWGd��d�e=e@��ZXGd��d�eX��ZYGd��d�e=e>��ZZGd��d�eZ��Z[ej\�]d�d��d�D����Gd��d�����Z^Gd��d�e?eB��Z_Gd��d���Z`Gd��d�e?eB��ZaGd��d���ZbGd��d���ZcGd��d�ec��ZdGd��d�ec��ZeGd��d�eeed��ZfGd��d���ZgGd��d�ec��ZhGd��d�ec��ZiGd��d�ec��ZjGd��d�efeh��ZkGdÄd�efei��ZlGdńd�efej��ZmGdDŽdȦ�ZndɄZoGdʄd˦�ZpGd̄dͦ�Zqd΄Zrej\�se+dϬЦ�dф��Ztd҄Zuej\�se+dӬЦ�ej\jvdԄ����ZwGdՄd֦�ZxGdׄdئ�ZyGdلdڦ�ZzdۄZ{ej\�|dܬЦ�d݄��Z}ej\�~e*dެЦ�d߄��ZdS)�z# Test functions for linalg module

�N)�array�single�double�csingle�cdouble�dot�identity�matmul)�swapaxes)�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��rt|��ntjuS�N)�type�
isinstance�np�ndarray)�out�in_s  �@/usr/lib/python3/dist-packages/numpy/linalg/tests/test_linalg.py�consistent_subclassr*s9����9�9�j��b�j�&A�&A�)��c���� �j�*�*���c�~�t|��jjttfvr|}n|}t||fd|i|��dS)N�decimal)r�dtyper#rr�old_assert_almost_equal)�a�b�single_decimal�double_decimal�kwr/s      r)rr$sM���q�z�z����� 1�1�1� ��� ���A�q�8�8�'�8�R�8�8�8�8�8r+c�r�tttttttti|Sr")rrrr�r0s r)�get_real_dtyper9,s&���F�F�F��V�W�f�.�.3�5�5r+c�r�tttttttti|Sr")rrrrr8s r)�get_complex_dtyper;1s&���G�V�W��W�g�w�0�05�7�7r+c�*�|ttfvrdSdS)Ng�h㈵��>g�dy���=)rrr8s r)�get_rtolr=6s�����!�!�!��t��ur+>�square�strided�	hermitian�	nonsquare�generalized�size-0c�4�eZdZe��fd�Zd�Zd�ZdS)�
LinalgCasec��tt|t����||_||_||_t
|��|_dS)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�namer2r3�	frozenset�tags)�selfrHr2r3rJs     r)�__init__zLinalgCase.__init__FsB��
	�
�4��%�%�&�&�&���	��������d�O�O��	�	�	r+c�@�||j|j|j���dS)zN
        Run the function `do` on this test case, expanding arguments
        �rJN)r2r3rJ)rK�dos  r)�checkzLinalgCase.checkQs'��	��4�6�4�6��	�*�*�*�*�*�*r+c��d|j�d�S)Nz
<LinalgCase: �>)rH�rKs r)�__repr__zLinalgCase.__repr__Ws��+�t�y�+�+�+�+r+N)�__name__�
__module__�__qualname__�setrLrPrT�r+r)rErEEsO������(+����	$�	$�	$�	$�+�+�+�,�,�,�,�,r+rEc�V�|tvs
Jd���|D]}|j|hz|_�|S)z^
    Add the given tag (a string) to each of the cases (a list of LinalgCase
    objects)
    zInvalid tag)�all_tagsrJ)�tag�cases�cases   r)�	apply_tagr_[s=��
�(�?�?�?�M�?�?�?��&�&���I���%��	�	��Lr+��r>r��?�@�@�@r8r�double_2)rbrard)rcrd�@r��?@y@@y@@y@@�@�?r�	cdouble_2)rhrgy�?@)y�?�y�?�y�?��0x0�rr�rrCrN�8x8��1x1��nonarray���rA�single_nsq_1)rarbrc�single_nsq_2g@rf)rbrarc�double_nsq_1�double_nsq_2�
csingle_nsq_1)��?�?�@@�@�)y@�y@"@y@@�
csingle_nsq_2rzr{r|y@"�y@�y@ @)rhrgr|�
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�]�}t|jtj��s�#tj|jd|jzd|jzg��}|j�d}n,tj|jd|jzd|jzg��}t|jdz|||j	dhz���}|�
|��tj|jgdzdz���d|jjz��}|j�d}n@tj|jgdzdz���d|jjz��}t|jd	z|||j	dhz���}|�
|�����|S)
Nrrrs�r,�_tile3rBrN�rsrr�_tile213)
�CASESr$r2r%r&rr3rErHrJ�append�reshape�shape)�	new_casesr^r2r3�new_cases     r)�_make_generalized_casesr��s����I��#�#���$�&�"�*�-�-�	���H�d�f�a�$�&�j�!�d�f�*�5�6�6���6�>��A�A���$�&�!�d�f�*�a�$�&�j�9�:�:�A��d�i�(�2�A�q�#'�9�
��#>�@�@�@������"�"�"��H�d�f�X��\�A�%�&�&�.�.�v����/D�E�E���6�>��A�A���$�&��A���)�*�*�2�2�6�D�F�L�3H�I�I�A��d�i�*�4�a��#'�9�
��#>�@�@�@������"�"�"�"��r+c#�0K�t|tj��s|dfV�dSdg|jz}d|d<|jdkrd|d<|jdkrd	|d
<t	jt
|���D�]$}d�t|j|��D��}t
d�|D����}tj	||j
�
��}|�tj���
d��||}||d<|�|j��}ttj||k����|dd�d�|D����zfV�|jdkrV|jddkrEt%|j��}d|d<tjj�||���}|dfV�|jdkrV|jddkrEt%|j��}d|d<tjj�||���}|dfV�|jdkr]|jdd�dkrJt%|j��}d|d<d|d<tjj�||���}|dfV���&dS)z<
    Generate cartesian product of strides for all axes
    �nopN�rp)rprs������rp���rr)rpr����c�8�g|]\}}t||z����SrY)�abs)�.0r2r3s   r)�
<listcomp>z%_stride_comb_iter.<locals>.<listcomp>s&��B�B�B�D�A�q�S��Q��Z�Z�B�B�Br+c�0�g|]}tdd|����Sr")�slice)r��repeats  r)r�z%_stride_comb_iter.<locals>.<listcomp>s$��H�H�H�f��d�D�&�1�1�H�H�Hr+r8l�>[=.�stride_�_c��g|]}d|z��S)z%+drY)r��js  r)r�z%_stride_comb_iter.<locals>.<listcomp>(s��'C�'C�'C�a���	�'C�'C�'Cr+r)�strides�stride_xxx_0�stride_xxx_0_x�rprp�stride_xxx_0_0)r$r%r&�ndim�	itertools�product�tuple�zipr��emptyr0�view�uint32�fill�	__class__r�all�join�listr��lib�
stride_tricks�
as_strided)�x�
stride_set�repeats�	new_shape�slices�xi�ss       r)�_stride_comb_iterr�
s�����
�a���$�$����h��������!�&��J��J�r�N��v��z�z�#�
�2���v��z�z� �
�2���$�e�J�&7�&7�8�'�'��B�B�C����,A�,A�B�B�B�	��H�H��H�H�H�I�I���X�i�q�w�
/�
/�
/��
����	�����
�+�+�+�
��Z����3��
�W�W�Q�[�
!�
!�����r�Q�w��� � � ��)�c�h�h�'C�'C�7�'C�'C�'C�D�D�D�D�D�D�D�
�6�Q�;�;�1�7�2�;�!�+�+��Q�Y���A��A�b�E���%�0�0��A�0�>�>�B��n�$�$�$�$��6�Q�;�;�1�7�2�;�!�+�+��Q�Y���A��A�b�E���%�0�0��A�0�>�>�B��&�&�&�&�&��6�Q�;�;�1�7�3�B�3�<�6�1�1��Q�Y���A��A�b�E��A�b�E���%�0�0��A�0�>�>�B��&�&�&�&�&��;'�'r+c
�
�g}tD]x}t|j��D]a\}}t|j��D]G\}}t	|jdz|zdz|z|||jdhz���}|�|���H�b�y|S)Nr�r?rN)r�r�r2r3rErHrJr�)r�r^r2�a_labelr3�b_labelr�s       r)�_make_strided_casesr�=s����I��+�+��+�D�F�3�3�	+�	+�J�A�w�/���7�7�
+�
+�
��7�%�d�i�#�o��&?�#�&E��&O�QR�TU�+/�9�	�{�+B�D�D�D��� � ��*�*�*�*�
+�	+�
�r+c�>�eZdZeZe��e��fd�ZdS)�LinalgTestCasec��|jD]u}|j|z|kr�|j|zr�	|�|j���8#t$r1}d|�d�}|tj��z
}t|��|�d}~wwxYwdS)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_CASESrJrPrO�	Exception�	traceback�
format_exc�AssertionError)rK�require�excluder^�e�msgs      r)�check_caseszLinalgTestCase.check_casesQs���
�O�	1�	1�D��y�7�"�g�-�-���y�7�"�
��
1��
�
�4�7�#�#�#�#���
1�
1�
1�3�t�3�3�3���y�+�-�-�-��$�S�)�)�q�0�����
1����	1�	1s�A�
A;�
,A6�6A;N)rUrVrWr�r�rXr�rYr+r)r�r�Ns>�������J�"%�#�%�%�����1�1�1�1�1�1r+r�c��eZdZd�Zd�ZdS)�LinalgSquareTestCasec�:�|�dhddh���dS)Nr>rBrC�r�r��r�rSs r)�
test_sq_casesz"LinalgSquareTestCase.test_sq_casesgs5�����(��"/��!:�	�	<�	<�	<�	<�	<r+c�:�|�ddhdh���dS)Nr>rCrBr�r�rSs r)�test_empty_sq_casesz(LinalgSquareTestCase.test_empty_sq_casesks5�����(�H�!5�"/��	�	2�	2�	2�	2�	2r+N)rUrVrWr�r�rYr+r)r�r�e�2������<�<�<�2�2�2�2�2r+r�c��eZdZd�Zd�ZdS)�LinalgNonsquareTestCasec�:�|�dhddh���dS)NrArBrCr�r�rSs r)�test_nonsq_casesz(LinalgNonsquareTestCase.test_nonsq_casesr�5�����+��"/��!:�	�	<�	<�	<�	<�	<r+c�:�|�ddhdh���dS)NrArCrBr�r�rSs r)�test_empty_nonsq_casesz.LinalgNonsquareTestCase.test_empty_nonsq_casesv�5�����+�x�!8�"/��	�	2�	2�	2�	2�	2r+N)rUrVrWr�r�rYr+r)r�r�pr�r+r�c��eZdZd�Zd�ZdS)�HermitianTestCasec�:�|�dhddh���dS)Nr@rBrCr�r�rSs r)�test_herm_casesz!HermitianTestCase.test_herm_cases}r�r+c�:�|�ddhdh���dS)Nr@rCrBr�r�rSs r)�test_empty_herm_casesz'HermitianTestCase.test_empty_herm_cases�r�r+N)rUrVrWr�r�rYr+r)r�r�{r�r+r�c�b�eZdZejjd���Zejjd���ZdS)�LinalgGeneralizedSquareTestCasec�:�|�ddhdh���dS)NrBr>rCr�r�rSs r)�test_generalized_sq_casesz9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases�s5�����-��!:�"*��	�	-�	-�	-�	-�	-r+c�6�|�hd����dS)N>r>rBrC�r�r�rSs r)�test_generalized_empty_sq_casesz?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases�s&�����!D�!D�!D��E�E�E�E�Er+N)rUrVrW�pytest�mark�slowr�r�rYr+r)r�r��sY�������[��-�-���-��[��F�F���F�F�Fr+r�c�b�eZdZejjd���Zejjd���ZdS)�"LinalgGeneralizedNonsquareTestCasec�:�|�ddhdh���dS)NrBrArCr�r�rSs r)�test_generalized_nonsq_casesz?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases��5�����-��!=�"*��	�	-�	-�	-�	-�	-r+c�6�|�hd����dS)N>rArBrCr�r�rSs r)�"test_generalized_empty_nonsq_caseszELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases�s&�����!G�!G�!G��H�H�H�H�Hr+N)rUrVrWr�r�r�rrrYr+r)r�r��sY�������[��-�-���-��[��I�I���I�I�Ir+r�c�b�eZdZejjd���Zejjd���ZdS)�HermitianGeneralizedTestCasec�:�|�ddhdh���dS)NrBr@rCr�r�rSs r)�test_generalized_herm_casesz8HermitianGeneralizedTestCase.test_generalized_herm_cases�rr+c�:�|�hd�dh���dS)N>r@rBrC�noner�r�rSs r)�!test_generalized_empty_herm_casesz>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases�s7�����!G�!G�!G�"(��	�	+�	+�	+�	+�	+r+N)rUrVrWr�r�r�rrrYr+r)rr�sT�������[��-�-���-��[��+�+���+�+�+r+rc��t|��}|jdkr�|j|jkr |jdd�|jdd�z}n2|j|jdzkr|jdd�}ntd���t	j|t	j||�����}tjtt|jdd����D]!}t||||��||<�"|St||��S)Nrsr�rpzNot implemented...r8r�)rr�r��
ValueErrorr%r��common_typer�r��map�ranger)r2r3r��r�cs     r)�dot_generalizedr�s�����
�
�A��v��{�{��6�Q�V���������q�w�r�s�s�|�3�I�I�
�V�q�v��z�
!�
!�������I�I��1�2�2�2��H�Y�b�n�Q��&:�&:�;�;�;���"�C��q�w�s��s�|�$<�$<�=�	#�	#�A��q��t�Q�q�T�?�?�A�a�D�D����1�a�y�y�r+c���t|��}|jdkr?tj|j|j���}t
|jd��|d<|St
|jd��S)Nrsr8r�.r)rr�r%r�r�r0r	)r2rs  r)�identity_like_generalizedr�s`����
�
�A��v��{�{��H�Q�W�A�G�,�,�,���!�'�"�+�&�&��#��������
�#�#�#r+c��eZdZd�ZdS)�
SolveCasesc��tj||��}t|t||����t	t||����dSr")r�solverrrr*)rKr2r3rJr�s     r)rOz
SolveCases.do�sL���L��A�����A��q�!�4�4�5�5�5��#�A�q�)�)�*�*�*�*�*r+N�rUrVrWrOrYr+r)rr�s#������+�+�+�+�+r+rc�j�eZdZej�deeee	g��d���Z
d�Zd�ZdS)�	TestSolver0c��tjddgddgg|���}ttj||��j|��dS�Nrp��?r8)r%rrrrr0�rKr0r�s   r)�
test_typeszTestSolve.test_types�sH���H�q�#�h��a��)��7�7�7���V�\�!�Q�'�'�-�u�5�5�5�5�5r+c
��Gd�dtj��}tjd���ddd��}tjd���ddd���|��}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���ddd��}ttt
j||��ttt
j|dd�|dd���tjd���dd���|��}tj||��dd�dd�f}tj|dd�dd�dd�f|dd�dd�f��}t||��tt||����tjd���dd��}ttt
j||��ttt
j|dd�|dd���ttt
j|dd�dd�dd�f|��dS)	Nc��eZdZdS)�,TestSolve.test_0_size.<locals>.ArraySubclassN�rUrVrWrYr+r)�
ArraySubclassr$���������Dr+r&rnrrr,rprsr)
r%r&�aranger�r�rrrrr$rrr
�rKr&r2r3�expected�results      r)�test_0_sizezTestSolve.test_0_size�s���	�	�	�	�	�B�J�	�	�	�
�I�a�L�L� � ��A�q�)�)���I�a�L�L� � ��A�q�)�)�.�.�}�=�=���<��1�%�%�a�a�a��1��a�a�a�i�0����a����1�Q�3��!���n�a����1�Q�3����	�l�;�;���6�8�,�,�,��
�6�=�1�1�2�2�2�	�f�(�&�,��!�!�!�Q�q�S�!�A�#�+���J�J�J��j�&�,��1�Q�Q�Q��!��Q�Q�Q�Y�<�@�@�@�
�I�a�L�L� � ��A�q�)�)���j�&�,��1�5�5�5��j�&�,��!�A�#���!�A�#��?�?�?�
�I�a�L�L� � ��A�&�&�+�+�M�:�:���<��1�%�%�a�a�a��1��f�-����a����1�Q�3��!���n�a����1�Q�3��i�8�8���6�8�,�,�,��
�6�=�1�1�2�2�2��I�a�L�L� � ��A�&�&���j�&�,��1�5�5�5��j�&�,��!�A�#���!�A�#��?�?�?��j�&�,��!�!�!�Q�q�S�!�A�#�+���B�B�B�B�Br+c���Gd�dtj��}tjd���ddd��}tjd���ddd���|��}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||����dS)	Nc��eZdZdS)�.TestSolve.test_0_size_k.<locals>.ArraySubclassNr%rYr+r)r&r/�r'r+r&rtrprrr,rsr)
r%r&r(r�r�rrrrr$r)s      r)�
test_0_size_kzTestSolve.test_0_size_k�s���	�	�	�	�	�B�J�	�	�	��I�a�L�L� � ��A�q�)�)���I�a�L�L� � ��A�q�)�)�.�.�}�=�=���<��1�%�%�a�a�a����A�a�C�i�0����a��1�1�1�a�a�a��1��9��.�.���6�8�,�,�,��
�6�=�1�1�2�2�2��<��1�%�%�a�a�a��1��a��c�k�2����a����1�Q�3��!���n�a����1�Q�3��!���n�=�=���6�8�,�,�,��
�6�=�1�1�2�2�2�2�2r+N)
rUrVrWr�r��parametrizerrrrr!r,r0rYr+r)rr�sl�������[���W�v�v�w��&H�I�I�6�6�J�I�6�C�C�C�B3�3�3�3�3r+rc��eZdZd�ZdS)�InvCasesc��tj|��}tt||��t	|����tt
||����dSr")r�invrrrrr*)rKr2r3rJ�a_invs     r)rOzInvCases.dosW���
�1�
�
���O�A�u�5�5�5�a�8�8�	:�	:�	:��#�E�1�-�-�.�.�.�.�.r+NrrYr+r)r3r3
s#������/�/�/�/�/r+r3c�d�eZdZej�deeee	g��d���Z
d�ZdS)�TestInvr0c��tjddgddgg|���}ttj|��j|��dSr)r%rrrr5r0r s   r)r!zTestInv.test_typessD���H�q�#�h��a��)��7�7�7���V�Z��]�]�(�%�0�0�0�0�0r+c���Gd�dtj��}tjdtj����|��}tj|��}t|jj	tj
u��t|j|j��tt||����tjdtj����|��}tj|��}t|jj	tju��t|j|j��tt||����dS)Nc��eZdZdS)�*TestInv.test_0_size.<locals>.ArraySubclassNr%rYr+r)r&r<r'r+r&�rrprpr8rk)r%r&�zeros�int_r�rr5rr0r#�float64rr�r$�	complex64�rKr&r2�ress    r)r,zTestInv.test_0_sizes ��	�	�	�	�	�B�J�	�	�	��H�Y�b�g�.�.�.�3�3�M�B�B���j��m�m����	��"�*�,�-�-�-��Q�W�c�i�(�(�(��
�3�
�.�.�/�/�/��H�V�2�<�0�0�0�5�5�m�D�D���j��m�m����	��"�,�.�/�/�/��Q�W�c�i�(�(�(��
�3�
�.�.�/�/�/�/�/r+N�rUrVrWr�r�r1rrrrr!r,rYr+r)r8r8sY�������[���W�v�v�w��&H�I�I�1�1�J�I�1�0�0�0�0�0r+r8c��eZdZd�ZdS)�EigvalsCasesc�|�tj|��}tj|��\}}t||��dSr")r�eigvals�eigr)rKr2r3rJ�ev�evalues�evectorss       r)rOzEigvalsCases.do,s9��
�^�A�
�
��"�J�q�M�M�����B��(�(�(�(�(r+NrrYr+r)rFrF*s#������)�)�)�)�)r+rFc�d�eZdZej�deeee	g��d���Z
d�ZdS)�TestEigvalsr0c�,�tjddgddgg|���}ttj|��j|��tjddgddgg|���}ttj|��jt
|����dS�Nrprr8r�)r%rrrrHr0r;r s   r)r!zTestEigvals.test_types3s����H�q�#�h��a��)��7�7�7���V�^�A�&�&�,�e�4�4�4��H�q�#�h��Q��(��6�6�6���V�^�A�&�&�,�.?��.F�.F�G�G�G�G�Gr+c���Gd�dtj��}tjdtj����|��}tj|��}t|jj	tj
u��td|j��tt|tj����tjdtj����|��}tj|��}t|jj	tju��td|j��tt|tj����dS)Nc��eZdZdS)�.TestEigvals.test_0_size.<locals>.ArraySubclassNr%rYr+r)r&rS<r'r+r&r=r8�rrprkrl)r%r&r>r?r�rrHrr0r#r@rr�r$rArBs    r)r,zTestEigvals.test_0_size:s$��	�	�	�	�	�B�J�	�	�	��H�Y�b�g�.�.�.�3�3�M�B�B���n�Q������	��"�*�,�-�-�-��V�S�Y�'�'�'��
�3��
�+�+�,�,�,��H�V�2�<�0�0�0�5�5�m�D�D���n�Q������	��"�,�.�/�/�/��T�3�9�%�%�%��
�3��
�+�+�,�,�,�,�,r+NrDrYr+r)rNrN2s\�������[���W�v�v�w��&H�I�I�H�H�J�I�H�-�-�-�-�-r+rNc��eZdZd�ZdS)�EigCasesc	�6�tj|��\}}tt||��t	j|��t	j|��dddd�fzt
|j�����tt||����dS)N.��rtol)
rrIrrr%rr=r0rr*)rKr2r3rJrKrLs      r)rOzEigCases.doOs���"�J�q�M�M�������8�4�4��
�8�,�,�r�z�'�/B�/B�3��a�a�a�<�/P�P�%�g�m�4�4�	6�	6�	6�	6�	�#�H�a�0�0�1�1�1�1�1r+NrrYr+r)rVrVMs#������2�2�2�2�2r+rVc�d�eZdZej�deeee	g��d���Z
d�ZdS)�TestEigr0c���tjddgddgg|���}tj�|��\}}t	|j|��t	|j|��tjddgddgg|���}tj�|��\}}t	|jt
|����t	|jt
|����dSrP)r%rrrIrr0r;�rKr0r��w�vs     r)r!zTestEig.test_typesXs����H�q�#�h��a��)��7�7�7���y�}�}�Q�����1��Q�W�e�$�$�$��Q�W�e�$�$�$��H�q�#�h��Q��(��6�6�6���y�}�}�Q�����1��Q�W�/��6�6�7�7�7��Q�W�/��6�6�7�7�7�7�7r+c���Gd�dtj��}tjdtj����|��}tj|��\}}t|jj	tj
u��t|jj	tj
u��t|j|j��td|j��tt|tj����tjdtj����|��}tj|��\}}t|jj	tju��t|jj	tju��t|j|j��td|j��tt|tj����dS)Nc��eZdZdS)�*TestEig.test_0_size.<locals>.ArraySubclassNr%rYr+r)r&rbfr'r+r&r=r8rTrkrl)r%r&r>r?r�rrIrr0r#r@rr�r$rA�rKr&r2rC�res_vs     r)r,zTestEig.test_0_sizeds���	�	�	�	�	�B�J�	�	�	��H�Y�b�g�.�.�.�3�3�M�B�B���Z��]�]�
��U���� �B�J�.�/�/�/���	��"�*�,�-�-�-��Q�W�e�k�*�*�*��V�S�Y�'�'�'��
�1�b�j�)�)�*�*�*��H�V�2�<�0�0�0�5�5�m�D�D���Z��]�]�
��U���� �B�L�0�1�1�1���	��"�,�.�/�/�/��Q�W�e�k�*�*�*��T�3�9�%�%�%��
�1�b�j�)�)�*�*�*�*�*r+NrDrYr+r)r[r[WsY�������[���W�v�v�w��&H�I�I�	8�	8�J�I�	8�+�+�+�+�+r+r[c�b�eZdZdZej�deee	e
g��d���ZdS)�SVDBaseTestsFr0c��tjddgddgg|���}tj|��\}}}t	|j|��t	|jt
|����t	|j|��tj|d|j���}t	|jt
|����dS)Nrprr8F��
compute_uvr@)r%rr�svdrr0r9r@)rKr0r��ur��vhs      r)r!zSVDBaseTests.test_types~s����H�q�#�h��a��)��7�7�7���:�a�=�=���1�b��Q�W�e�$�$�$��Q�W�n�U�3�3�4�4�4��R�X�u�%�%�%��J�q�U�d�n�E�E�E���Q�W�n�U�3�3�4�4�4�4�4r+N)rUrVrWr@r�r�r1rrrrr!rYr+r)rfrf{sO�������I��[���W�v�v�w��&H�I�I�5�5�J�I�5�5�5r+rfc��eZdZd�ZdS)�SVDCasesc��tj|d��\}}}t|tt	j|��t	j|��dddd�fzt	j|����t
|j�����tt||����tt||����dS)NF.rX)
rrjrrr%rr=r0rr*)rKr2r3rJrkr��vts       r)rOzSVDCases.do�s����:�a��'�'���1�b���?�2�:�a�=�=�2�:�a�=�=��d�TU�TU�TU��;V�+V�+-�:�b�>�>�;�;�%�a�g�.�.�	0�	0�	0�	0�	�#�A�q�)�)�*�*�*��#�B��*�*�+�+�+�+�+r+NrrYr+r)rnrn�s#������,�,�,�,�,r+rnc��eZdZd�ZdS)�TestSVDc��tjd��}tj|d|j���\}}}t|jd��t|jd��t|tjd����tjd��}tj|d|j���\}}}t|jd��t|jd��t|tjd����dS)	z6 Empty input should put an identity matrix in u or vh )rtrTrh�rtrtrkrt)rrtN)r%r�rrjr@rr��eye)rKr�rkr�rls     r)�test_empty_identityzTestSVD.test_empty_identity�s����H�V�����:�a�D�D�N�K�K�K���1�b��Q�W�f�%�%�%��R�X�v�&�&�&��Q���q�	�	�"�"�"��H�V�����:�a�D�D�N�K�K�K���1�b��Q�W�f�%�%�%��R�X�v�&�&�&��R������#�#�#�#�#r+N)rUrVrWrvrYr+r)rrrr�s#������$�$�$�$�$r+rrc��eZdZd�ZdS)�SVDHermitianCasesc��tj|dd���\}}}t|tt	j|��t	j|��dddd�fzt	j|����t
|j�����d�}tt	j	|||����t	j
t	j|jd��|j����tt	j	|||����t	j
t	j|jd��|j����tt	j|��dddd�f|��tt!||����tt!||����dS)NFT�r@.rXc���tt|j����}|d|dc|d<|d<tjtj||�����S)Nr�r���axes)r�rr�r%�conj�	transpose)�matr}s  r)r@z'SVDHermitianCases.do.<locals>.hermitian�sR����c�h���(�(�D�!%�b��4��8��D��H�d�2�h��7�2�<��$�7�7�7�8�8�8r+r�)rrjrrr%rr=r0rr
�broadcast_torur�r�sortrr*)rKr2r3rJrkr�rpr@s        r)rOzSVDHermitianCases.do�s����:�a��$�7�7�7���1�b���?�2�:�a�=�=�2�:�a�=�=��d�TU�TU�TU��;V�+V�+-�:�b�>�>�;�;�%�a�g�.�.�	0�	0�	0�	0�	9�	9�	9�
	�B�I�a���1���6�6�����q�w�WY�{�H[�H[�]^�]d�8e�8e�f�f�f��B�I�b�)�)�B�-�-�8�8�"�/�"�&�QS�QY�Z\�Q]�J^�J^�`b�`h�:i�:i�j�j�j��R�W�Q�Z�Z��T�T�r�T�	�*�A�.�.�.��#�A�q�)�)�*�*�*��#�B��*�*�+�+�+�+�+r+NrrYr+r)rxrx�s#������,�,�,�,�,r+rxc��eZdZdZdS)�TestSVDHermitianTN)rUrVrWr@rYr+r)r�r��s�������I�I�Ir+r�c��eZdZd�ZdS)�	CondCasesc	��t|��}d|vr"tttj|��dStj|d���}t
tj|��|d|dzdd���t
tj|d	��|d|dzdd���t
tj|d
��|d|dzdd���tj�|��}t
tj|d��t|���
d
���d��t|���
d
���d��zdd���t
tj|d��t|���
d
���d��t|���
d
���d��zdd���t
tj|tj
��t|���
d���d��t|���
d���d��zdd���t
tj|tj
��t|���
d���d��t|���
d���d��zdd���t
tj|d
��tjt|��d	z�
d���
d��t|��d	z�
d���
d��z��dd���dS)NrCF)ri).r).r�r�r��r4r5rrr�rpr��fro)rrrr�condrjrr%r5r��sum�max�minr�sqrt)rKr2r3rJrr��cinvs       r)rOzCondCases.do�st���A�J�J���t����+�v�{�A�6�6�6��F�
�J�q�U�+�+�+����K��N�N�A�f�I��'�
�2��R�	1�	1�	1�	1�	��K��1���q��y�1�W�:�5��R�	1�	1�	1�	1�	��K��2����'�
�Q�v�Y� 6��R�	1�	1�	1�	1�
�y�}�}�Q������K��1�����F�F�J�J�r�N�N���r�"�"�S��Y�Y�]�]�2�%6�%6�%:�%:�2�%>�%>�>��R�	1�	1�	1�	1�	��K��2�����F�F�J�J�r�N�N���r�"�"�S��Y�Y�]�]�2�%6�%6�%:�%:�2�%>�%>�>��R�	1�	1�	1�	1�	��K��2�6�"�"���F�F�J�J�r�N�N���r�"�"�S��Y�Y�]�]�2�%6�%6�%:�%:�2�%>�%>�>��R�	1�	1�	1�	1�	��K��B�F�7�#�#���F�F�J�J�r�N�N���r�"�"�S��Y�Y�]�]�2�%6�%6�%:�%:�2�%>�%>�>��R�	1�	1�	1�	1�	��K��5�!�!��G�S��V�V�Q�Y�O�O�B�'�'�+�+�B�/�/��4�y�y�!�|�(�(��,�,�0�0��4�4�5�
6�
6��R�		1�	1�	1�	1�	1�	1r+NrrYr+r)r�r��s#������(1�(1�(1�(1�(1r+r�c�l�eZdZd�Zd�Zej�ddd���d���Zd�Z	d	S)
�TestCondc���tgd�gd�gd�g��}ttj|t��d��ttj|t��d��ttj|d��d��ttj|d��d��ttj|d	��tjd
����dS)N)rarrp)rg�r)rrrcrtgUUUUUU�?rpr�rr�gUUUUU6@)rrrr�rr%r��rK�As  r)�test_basic_nonsvdzTestCond.test_basic_nonsvd�s����:�:�:�{�{�{�J�J�J�7�8�8���F�K��3�/�/��3�3�3��F�K��C�4�0�0�#�6�6�6��F�K��1�-�-�q�1�1�1��F�K��2�.�.��4�4�4��F�K��5�1�1�2�7�8�3D�3D�E�E�E�E�Er+c�H�tjd��tjd��g}gd�}ddg}tj||��D]+\}}tt
j||��dk���,tj||��D]\}}t
j||���dS)N�rrrr�Nrprrr�r�r��4&�kC)r%r>�onesr�r�rrr�)rK�As�p_pos�p_negr��ps      r)�
test_singularzTestCond.test_singular�s����h�v��������
0��#�#�#���R����%�b�%�0�0�	.�	.�D�A�q�
�F�K��1�%�%��,�-�-�-�-��%�b�%�0�0�	�	�D�A�q��K��1�����	�	r+TFz/Platform/LAPACK-dependent failure, see gh-18914)�run�reasonc��gd�}gd�}tjd��}tj|d<|D]_}tj||��}tt
|tj����ttj|�����`tjd��}tj|d<|D]�}tj||��}ttj|d����||vr3t|dd	k��t|d
d	k���uttj|d����ttj|d
������dS)N)Nrpr�rrr�r�r�r�rT)rsrrrr�rprrprprr�rr)	r%r��nanrr�rr$�float_�isnan)rK�psr�r�r�rs      r)�test_nanzTestCond.test_nansX��
)�
(�
(��#�#�#���G�F�O�O�����#���	!�	!�A���A�q�!�!�A��J�q�"�)�,�,�-�-�-��B�H�Q�K�K� � � � ��G�I�����6��%���	,�	,�A���A�q�!�!�A��B�H�Q�q�T�N�N�#�#�#��E�z�z���!��t��$�$�$���!��t��$�$�$�$��B�H�Q�q�T�N�N�*�+�+�+��B�H�Q�q�T�N�N�*�+�+�+�+�	,�	,r+c���tj�d��tj�dddd��}d|d<d|d<dD]�}t	j||��}t
|dtj��t
|dtj��ttj	|d����ttj	|d������dS)	Nr`rrrrkr�)Nrprrr�r�r�rT�rpr)
r%�random�seed�randrr�rrr�isfinite)rKr�r�rs    r)�test_stacked_singularzTestCond.test_stacked_singulars���	�	���t�����I�N�N�1�a��A�&�&����#����#��,�	)�	)�A���A�q�!�!�A���3����(�(�(���3����(�(�(��B�K��#��'�'�(�(�(��B�K��#��'�'�(�(�(�(�	)�	)r+N)
rUrVrWr�r�r�r��xfailr�r�rYr+r)r�r��s�������F�F�F�����[���t��-��.�.�,�,�.�.�,�0
)�
)�
)�
)�
)r+r�c��eZdZd�ZdS)�	PinvCasesc���tj|��}t}t||||��|��|dd���t	t||����dS)Nr�r�r��r�pinvrrrr*�rKr2r3rJ�a_ginvrs      r)rOzPinvCases.do1sa����Q�������C�C���A�v����2�2�A�a�XZ�[�[�[�[��#�F�A�.�.�/�/�/�/�/r+NrrYr+r)r�r�,s#������
0�0�0�0�0r+r�c��eZdZdS)�TestPinvNr%rYr+r)r�r�9��������Dr+r�c��eZdZd�ZdS)�PinvHermitianCasesc���tj|d���}t}t||||��|��|dd���t	t||����dS)NTrzr�r�r�r�r�s      r)rOzPinvHermitianCases.do?sh����Q�$�/�/�/�����C�C���A�v����2�2�A�a�XZ�[�[�[�[��#�F�A�.�.�/�/�/�/�/r+NrrYr+r)r�r�=s#������0�0�0�0�0r+r�c��eZdZdS)�TestPinvHermitianNr%rYr+r)r�r�Gr�r+r�c��eZdZd�ZdS)�DetCasesc��tj|��}tj|��\}}t|��jjttfvr(t|���t��}n't|���t��}tj
|��}t|tj
|d�����t|tj|��ztj
|d�����tj|��}tj|��}|dk}	ttj||	��d��t%||	t&��dS)Nr���axisrrp)r�det�slogdetrr0r#rr�astyperrHrr�reducer%�exp�
atleast_1dr�rr)
rKr2r3rJ�dr��ld�adrJ�ms
          r)rOzDetCases.doMs,���J�q�M�M���.��#�#���B��1�:�:�� �V�V�$4�4�4�����"�"�6�*�*�B�B�����"�"�7�+�+�B�
�^�B�
�
���A�x��r��;�;�;�<�<�<��A���r�
�
�N�H�O�B�R�,H�,H�,H�I�I�I��M�!����
�]�2�
�
��
�!�V���B�F�1�Q�4�L�L�!�,�,�,��R���V�c�T�"�"�"�"�"r+NrrYr+r)r�r�Ks#������#�#�#�#�#r+r�c�j�eZdZd�Zej�deee	e
g��d���Zd�ZdS)�TestDetc��ttjdgg��d��tttjdgg����t��ttjdgg��d��tttjdgg����t
��ttjdgg��dtf��tttjdgg��d��t��tttjdgg��d��t��ttjdgg��dtf��tttjdgg��d��t
��tttjdgg��d��t��dS)N�yrrp)rrr�r#rrr�rrSs r)�	test_zerozTestDet.test_zero`s����V�Z�#���(�(�#�.�.�.��T�&�*�s�e�W�-�-�.�.��7�7�7��V�Z�$���)�)�3�/�/�/��T�&�*�t�f�X�.�.�/�/��9�9�9��V�^�c�U�G�,�,�s�S�D�k�:�:�:��T�&�.�3�%��1�1�!�4�5�5�v�>�>�>��T�&�.�3�%��1�1�!�4�5�5�v�>�>�>��V�^�d�V�H�-�-��s�d�|�<�<�<��T�&�.�4�&��2�2�1�5�6�6��@�@�@��T�&�.�4�&��2�2�1�5�6�6��?�?�?�?�?r+r0c�T�tjddgddgg|���}ttj�|��j|��tj�|��\}}t|jt|����t|j|��dSr)r%rrrr�r0r�r9)rKr0r��phr�s     r)r!zTestDet.test_typesms����H�q�#�h��a��)��7�7�7���R�Y�]�]�1�%�%�+�U�3�3�3��	�!�!�!�$�$���A��Q�W�n�U�3�3�4�4�4��R�X�u�%�%�%�%�%r+c��tjdtj���}tj|��}t|d��t
|jjtju��tj	|��}t|d��t
|djjtju��t
|djjtj
u��tjdtj���}tj|��}t|d��t
|jjtju��tj	|��}t|d��t
|djjtju��t
|djjtju��dS)Nrkr8rar�rrp)r%r>rArr�rrr0r#r��float32r@)rKr2rCs   r)r,zTestDet.test_0_sizeusV���H�V�2�<�0�0�0���j��m�m���S�"������	��"�,�.�/�/�/��n�Q�����S�&�!�!�!���A���!�R�\�1�2�2�2���A���!�R�Z�/�0�0�0��H�V�2�:�.�.�.���j��m�m���S�"������	��"�*�,�-�-�-��n�Q�����S�&�!�!�!���A���!�R�Z�/�0�0�0���A���!�R�Z�/�0�0�0�0�0r+N)
rUrVrWr�r�r�r1rrrrr!r,rYr+r)r�r�_sm������@�@�@��[���W�v�v�w��&H�I�I�&�&�J�I�&�1�1�1�1�1r+r�c��eZdZd�ZdS)�
LstsqCasesc��tj|��}|j\}}tj|d��\}}}	tj||d���\}
}}}
|dkr%t
|
dk�����||kr/t|t||
����t||��nt||��t|
|
�|����||kr�||kr�tjttj	||
��|z
����dz�
d���}tj|��}tj|��jdkr!d|_t|j|j��n4tjg���t#|
����}t||��t
tj|jtj����t
t+|
|����t
t+||����dS)	NFr���rcondrrrr�rpr�)r%rr�rrj�lstsqrr�rrr�__array_wrap__r�r�r�rr�r#�
issubdtyper0�floatingr*)rKr2r3rJ�arrr��nrkr�rpr��	residuals�rank�sv�
expect_residss               r)rOz
LstsqCases.do�s����j��m�m���y���1��:�a��'�'���1�b�!'��a��"�!=�!=�!=���9�d�B���6�6��Q�!�V�L�L�N�N�#�#�#���6�6���3�q�!�9�9�-�-�-���q�!�!�!�!���q�!�!�!��B�� 1� 1�!� 4� 4�5�5�5��1�9�9��Q����
�3�r�v�a��|�|�a�/�0�0�1�1�Q�6�������
��J�}�5�5�M��z�!�}�}�!�Q�&�&�&*�
�#��Y�_�m�.A�B�B�B���H�R�L�L�-�-�d�1�g�g�6�6�M��I�}�5�5�5���
�i�o�r�{�;�;�<�<�<��#�A�q�)�)�*�*�*��#�I�q�1�1�2�2�2�2�2r+NrrYr+r)r�r��s#������3�3�3�3�3r+r�c�j�eZdZd�Zej�gd�gd���d���Zd�ZdS)�	TestLstsqc�V�tjgd�gd�gd�gd�g��j}tjgd���}t��5}|�t
d��}t
j||��\}}}}t|dk��t
j||d�	��\}}}}t|dk��t
j||d�	��\}}}}t|d
k��tt|��dk��ddd��dS#1swxYwYdS)N)r�rar�rarbr�)r�rbr�r�rar�)rar�rar�r�rd)r�r�r�rbrcr�)rprrrrrz`rcond` parameter will changertr�r�rsrp)
r%r�Tr�record�
FutureWarningrr�r�len)	rKr2r3�supr^r�r�r�r�s	         r)�test_future_rcondzTestLstsq.test_future_rcond�s����H�2�2�2�2�2�2�2�2�2�2�2�2�4�
5�
5�67�	
�

�H�'�'�'�(�(��
�
 �
 �		!�C��
�
�=�*I�J�J�A�$*�L��A�$6�$6�!�A�y�$���D�A�I����$*�L��A�R�$@�$@�$@�!�A�y�$���D�A�I����$*�L��A�T�$B�$B�$B�!�A�y�$���D�A�I�����C��F�F�a�K� � � �		!�		!�		!�		!�		!�		!�		!�		!�		!�		!�		!�		!����		!�		!�		!�		!�		!�		!s�
CD�D"�%D")r�r��n_rhs))rtrrrr)rrtrp)rrtrr)rtrrp)rtrrr)rtrrr)rrrc��tj||z���||��}tj||f��}t	j||d���\}}}}	|dkr%t
|dk�����t|j	||f��t|j	||kr|fnd��||krE|dkr?|tj
||��z
}
t||
|
z�d�����t|t||����t|	j	t||��f��dS)Nr�rrlr�r�)r%r(r�r�rr�rr�rr�rrr�r�)rKr�r�r�r2r3r�r�r�r�rs           r)�test_empty_a_bzTestLstsq.test_empty_a_b�s3��
�I�a�!�e���$�$�Q��*�*���G�Q��J���� &��Q��� >� >� >���9�d�A���6�6��Q�!�V�L�L�N�N�#�#�#��Q�W�q�%�j�)�)�)��Y�_�1�q�5�5��x�x�d�D�D�D��q�5�5�U�Q�Y�Y��B�F�1�a�L�L� �A��	�A��E�;�;�B�;�+?�+?�@�@�@��T�3�q�!�9�9�%�%�%��Q�W�s�1�a�y�y�l�+�+�+�+�+r+c�\�tjgd���}tjgd���}tj|tjt	|����g��j}t
td��5tj	||d���ddd��dS#1swxYwYdS)N)rrprrrs)r�g�������?g�������?g������@gffffff
@zIncompatible dimensionsr�)
r%r�vstackr�r�r�rrrr�)rKr��yr�s    r)�test_incompatible_dimsz TestLstsq.test_incompatible_dims�s����H�\�\�\�"�"���H�-�-�-�.�.���I�q�"�'�#�a�&�&�/�/�*�+�+�-��
 ��.G�
H�
H�	+�	+��L��A�T�*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s�<B!�!B%�(B%N)	rUrVrWr�r�r�r1r�r�rYr+r)r�r��sz������!�!�!�$�[���0�0�0�3�3�3���
,�
,���
,�+�+�+�+�+r+r��dtc�6�g|]}tj|����SrY)r%r0)r�rs  r)r�r��s ��I�I�I�������I�I�Ir+z?bBhHiIqQefdgFDGOc��eZdZejd��Zegd�Zegd�Zegd�ZeeeegZ	e
ddgddgg��Zejegggdz��Z
eejd��ejd	��ejd
��gZd�Zd�Zd
�Zd�Zd�Zd�Zd�Zej�ed���d���ZdS)�TestMatrixPowerrt)rsrrprr)rrrsrrp)rprrrsrrprrrr��g�Gc��|j�|��}tt|ddzdzdzdz��|j��tt|ddzdzdzdz��|j��tt|ddzdzdzdz��|j��tt|ddzdzdzdz��|j��dS)Nrr�di� rrprs)�rshft_1r�rr�rshft_0�rshft_2�rshft_3)rKr��rshfts   r)�test_large_powerz TestMatrixPower.test_large_power�s����#�#�B�'�'������3����� 5�� 9�:�:�D�L�	J�	J�	J�����3����� 5�� 9�:�:�D�L�	J�	J�	J�����3����� 5�� 9�:�:�D�L�	J�	J�	J�����3����� 5�� 9�:�:�D�L�	J�	J�	J�	J�	Jr+c��d�}|jD]N}||�|����|tkr#||j�|�����OdS)Nc��t|d��}t|t|����t|j|j��dS)Nr)rrrr0)�M�mzs  r)�tzz.TestMatrixPower.test_power_is_zero.<locals>.tz�sD���a��#�#�B���6�q�9�9�:�:�:����1�7�+�+�+�+�+r+��	rshft_allr��object�stacked�rKr�r
r�s    r)�test_power_is_zeroz"TestMatrixPower.test_power_is_zero�sr��	,�	,�	,�
�>�	,�	,�C��B�s�z�z�"�~�~�����V�|�|���4�<�&�&�r�*�*�+�+�+��	,�	,r+c��d�}|jD]N}||�|����|tkr#||j�|�����OdS)Nc�z�t|d��}t||��t|j|j��dS)Nrp)rrr0)r�r	s  r)r
z-TestMatrixPower.test_power_is_one.<locals>.tz�s;���c�1�%�%�B���S�!�!�!����3�9�-�-�-�-�-r+rrs    r)�test_power_is_onez!TestMatrixPower.test_power_is_one�sr��	.�	.�	.�
�>�	,�	,�C��B�s�z�z�"�~�~�����V�|�|���4�<�&�&�r�*�*�+�+�+��	,�	,r+c��d�}|jD]N}||�|����|tkr#||j�|�����OdS)Nc���t|d��}|jtkrtnt}t||||����t|j|j��dS)Nrr)rr0r
r
rr)r�r	�mmuls   r)r
z-TestMatrixPower.test_power_is_two.<locals>.tz
sZ���c�1�%�%�B� �Y�&�0�0�6�6�c�D���T�T�#�s�^�^�,�,�,����3�9�-�-�-�-�-r+rrs    r)�test_power_is_twoz!TestMatrixPower.test_power_is_two	sr��	.�	.�	.��>�	,�	,�C��B�s�z�z�"�~�~�����V�|�|���4�<�&�&�r�*�*�+�+�+��	,�	,r+c�n�d�}|jD])}||jvr||�|�����*dS)Nc��t|d��}|jtkrtnt}t|||��t
|����dS�Nr�)rr0r
r
rrr)r��invmatrs   r)r
z3TestMatrixPower.test_power_is_minus_one.<locals>.tzsa��!�#�r�*�*�F� �Y�&�0�0�6�6�c�D����V�S�!�!�#<�S�#A�#A�
C�
C�
C�
C�
Cr+)r�dtnoinvr�rs    r)�test_power_is_minus_onez'TestMatrixPower.test_power_is_minus_onesY��	C�	C�	C��>�	#�	#�C����%�%���3�:�:�b�>�>�"�"�"��	#�	#r+c��|j�|��}ttt|d��ttt|dg��dS)Ng�?rp)rr�r�	TypeErrorr�rKr�r�s   r)�test_exceptions_bad_powerz)TestMatrixPower.test_exceptions_bad_power sG���l�!�!�"�%�%���i��s�C�8�8�8��i��s�Q�C�8�8�8�8�8r+c�*�ttttjdg|��d��ttttjdgdgg|��d��ttttjd|��d��dS)Nrprr)rtrsrr)rrrr%rr�)rKr�s  r)�test_exceptions_non_squarez*TestMatrixPower.test_exceptions_non_square%sr���k�<���1�#�r�1B�1B�A�F�F�F��k�<���A�3���*�b�1I�1I�1�M�M�M��k�<����B�1G�1G��K�K�K�K�Kr+�fp errors don't work in wasm�r�c��||jvrdS|j�|��}ttt
|d��dSr)r�noninvr�rrrr s   r)�test_exceptions_not_invertiblez.TestMatrixPower.test_exceptions_not_invertible*sC��
������F��k� � ��$�$���k�<��b�9�9�9�9�9r+N)rUrVrWr%rurrrrrrr'�blockrr
r0rrrrrrr!r#r�r��skipifr r(rYr+r)r�r��sb�������b�f�Q�i�i�G��l�l�l�#�G��l�l�l�#�G��l�l�l�#�G��'�7�G�4�I�
�U�Q��F�Q��F�#�
$�
$�F��b�h�'���}�Q��'�'�G��x�r�x��}�}�h�b�h�s�m�m�X�R�X�c�]�]�C�G�	J�	J�	J�	,�	,�	,�	,�	,�	,�
,�
,�
,�	#�	#�	#�9�9�9�
L�L�L�
�[����(F��G�G�:�:�H�G�:�:�:r+r�c��eZdZd�ZdS)�TestEigvalshCasesc�D�tj|d��}tj|��\}}|�d���t	||t|j�����tj|d��}t	||t|j�����dS)N�Lr�r�rX�U)r�eigvalshrIr�rr=r0)rKr2r3rJrJrKrL�ev2s        r)rOzTestEigvalshCases.do4s����_�Q��
$�
$��"�J�q�M�M�������"�������G�(�2�8�*<�*<�=�=�=�=��o�a��%�%����W�8�B�H�+=�+=�>�>�>�>�>�>r+NrrYr+r)r,r,2s#������	?�	?�	?�	?�	?r+r,c�p�eZdZej�deeee	g��d���Z
d�Zd�Zd�Z
dS)�TestEigvalshr0c��tjddgddgg|���}tj�|��}t	|jt
|����dSr)r%rrr0rr0r9)rKr0r�r^s    r)r!zTestEigvalsh.test_typesAsX���H�q�#�h��a��)��7�7�7���I���q�!�!���Q�W�n�U�3�3�4�4�4�4�4r+c�8�tjddgddggtj���}tttjj|d���tttjj|d��tttjj|d��dS�Nrprr8�lrong��UPLO�lower�upper)r%rr�rr
rr0�rKr�s  r)�test_invalidzTestEigvalsh.test_invalidGsy���H�q�#�h��a��)���<�<�<���j�"�)�"4�a�g�F�F�F�F��j�"�)�"4�a��A�A�A��j�"�)�"4�a��A�A�A�A�Ar+c��tjddgddggtj���}tjddgddggtj���}tjddgtj���}ttj��}tj�|��}t
|||���tj�|d���}t
|||���tj�|d���}t
|||���tj�|d	���}t
|||���tj�|d
���}t
|||���dS�Nrrpr8r�rXr.r8�lr/rk)r%rrr=rr0r)rK�Klo�Kup�tgtrYr^s      r)�	test_UPLOzTestEigvalsh.test_UPLOMs_���h��A���A��'�r�y�9�9�9���h��A���A��'�r�y�9�9�9���h��A�w�b�i�0�0�0����	�"�"��
�I���s�#�#����3�T�*�*�*�*��I���s���-�-����3�T�*�*�*�*��I���s���-�-����3�T�*�*�*�*��I���s���-�-����3�T�*�*�*�*��I���s���-�-����3�T�*�*�*�*�*�*r+c���Gd�dtj��}tjdtj����|��}tj|��}t|jj	tj
u��td|j��tt|tj����tjdtj����|��}tj|��}t|jj	tju��td|j��tt|tj����dS)Nc��eZdZdS)�/TestEigvalsh.test_0_size.<locals>.ArraySubclassNr%rYr+r)r&rGer'r+r&r=r8rTrkrl)r%r&r>r?r�rr0rr0r#r@rr�r$rAr�rBs    r)r,zTestEigvalsh.test_0_sizecs$��	�	�	�	�	�B�J�	�	�	��H�Y�b�g�.�.�.�3�3�M�B�B���o�a� � ����	��"�*�,�-�-�-��V�S�Y�'�'�'��
�3��
�+�+�,�,�,��H�V�2�<�0�0�0�5�5�m�D�D���o�a� � ����	��"�*�,�-�-�-��T�3�9�%�%�%��
�3��
�+�+�,�,�,�,�,r+N�rUrVrWr�r�r1rrrrr!r=rDr,rYr+r)r3r3@sz�������[���W�v�v�w��&H�I�I�5�5�J�I�5�
B�B�B�+�+�+�,-�-�-�-�-r+r3c��eZdZd�ZdS)�
TestEighCasesc��tj|��\}}tj|��\}}|�d���t	||��tt
||��tj|��dddd�ftj|��zt|j
�����tj|d��\}}	t	||��tt
||	��tj|��dddd�ftj|	��zt|j
��t|�����dS)Nr�r�.rXr/)rY�err_msg)r�eighrIr�rrrr%rr=r0�repr)
rKr2r3rJrJ�evcrKrLr1�evc2s
          r)rOzTestEighCases.doxs:���+�a�.�.���C�"�J�q�M�M�������"������B��(�(�(����3�/�/��
�2���s�D�!�!�!�|�4�r�z�#���F�%�b�h�/�/�	1�	1�	1�	1��K��3�'�'�	��T��C��)�)�)����4�0�0��
�3����T�1�1�1��5��
�4�8H�8H�H�%�b�h�/�/��a���	B�	B�	B�	B�	B�	Br+NrrYr+r)rJrJvs(������B�B�B�B�Br+rJc�p�eZdZej�deeee	g��d���Z
d�Zd�Zd�Z
dS)�TestEighr0c���tjddgddgg|���}tj�|��\}}t	|jt
|����t	|j|��dSr)r%rrrMrr0r9r]s     r)r!zTestEigh.test_types�sl���H�q�#�h��a��)��7�7�7���y�~�~�a� � ���1��Q�W�n�U�3�3�4�4�4��Q�W�e�$�$�$�$�$r+c�8�tjddgddggtj���}tttjj|d���tttjj|d��tttjj|d��dSr6)r%rr�rr
rrMr<s  r)r=zTestEigh.test_invalid�sv���H�q�#�h��a��)���<�<�<���j�"�)�.�!�'�B�B�B�B��j�"�)�.�!�W�=�=�=��j�"�)�.�!�W�=�=�=�=�=r+c�,�tjddgddggtj���}tjddgddggtj���}tjddgtj���}ttj��}tj�|��\}}t
|||���tj�|d���\}}t
|||���tj�|d���\}}t
|||���tj�|d	���\}}t
|||���tj�|d
���\}}t
|||���dSr?)r%rrr=rrMr)rKrArBrCrYr^r_s       r)rDzTestEigh.test_UPLO�se���h��A���A��'�r�y�9�9�9���h��A���A��'�r�y�9�9�9���h��A�w�b�i�0�0�0����	�"�"���y�~�~�c�"�"���1���3�T�*�*�*�*��y�~�~�c��~�,�,���1���3�T�*�*�*�*��y�~�~�c��~�,�,���1���3�T�*�*�*�*��y�~�~�c��~�,�,���1���3�T�*�*�*�*��y�~�~�c��~�,�,���1���3�T�*�*�*�*�*�*r+c���Gd�dtj��}tjdtj����|��}tj|��\}}t|jj	tj
u��t|jj	tj
u��t|j|j��td|j��tt|tj����tjdtj����|��}tj|��\}}t|jj	tju��t|jj	tju��t|j|j��td|j��tt|tj����dS)Nc��eZdZdS)�+TestEigh.test_0_size.<locals>.ArraySubclassNr%rYr+r)r&rX�r'r+r&r=r8rTrkrl)r%r&r>r?r�rrMrr0r#r@rr�r$rAr�rcs     r)r,zTestEigh.test_0_size�s���	�	�	�	�	�B�J�	�	�	��H�Y�b�g�.�.�.�3�3�M�B�B���[��^�^�
��U���� �B�J�.�/�/�/���	��"�*�,�-�-�-��Q�W�e�k�*�*�*��V�S�Y�'�'�'��
�1�b�j�)�)�*�*�*��H�V�2�<�0�0�0�5�5�m�D�D���[��^�^�
��U���� �B�L�0�1�1�1���	��"�*�,�-�-�-��Q�W�e�k�*�*�*��T�3�9�%�%�%��
�1�b�j�)�)�*�*�*�*�*r+NrHrYr+r)rRrR�sw�������[���W�v�v�w��&H�I�I�%�%�J�I�%�>�>�>�+�+�+�,+�+�+�+�+r+rRc�,�eZdZdZdZed���ZdS)�
_TestNormBaseNc���t|jjtj��r!t|j|jj��dStt|jjtj����dSr")	�
issubclassr0r#r%�inexactr�realrr�)r�rCs  r)�check_dtypez_TestNormBase.check_dtype�s\���a�g�l�B�J�/�/�	=����A�F�L�1�1�1�1�1�
�J�s�y�~�r�{�;�;�<�<�<�<�<r+)rUrVrWr��dec�staticmethodr_rYr+r)rZrZ�s7������	
�B�
�C��=�=��\�=�=�=r+rZc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�_TestNormGeneralc
��ttg��d��tttg|j�����d��ttt	tg|j�������d��dS)Nr�r8)rrrr�r
rSs r)�
test_emptyz_TestNormGeneral.test_empty�st���T�"�X�X�s�#�#�#��T�%��$�'�2�2�2�3�3�S�9�9�9��T�*�U�2�T�W�%=�%=�%=�>�>�?�?��E�E�E�E�Er+c�(�tjgd���}tjd}tjd}||z}|D�]N}|�|��}t	|tj��}|�||��t|d��t��5}|�	td��t	|d��}|�||��t|d��ddd��n#1swxYwYt	|d��}|�||��t|d��t	|d	��}|�||��t|d
��t	|d��}|�||��t||j�d
��|j�d��z��t	|d��}|�||��t||j�d
��|j�d
��z��t	|tj��}|�||��t|d����PdS)Nr��
AllInteger�AllFloatr��divide by zero encounteredr�rrrrprbrrtg�?ra)
r%r�	typecodesr�rrr_rr�filter�RuntimeWarningr0r#�	rKr2�exact_types�
inexact_types�	all_types�	each_type�at�anr�s	         r)�test_vector_return_typez(_TestNormGeneral.test_vector_return_type�s����H�Y�Y�Y�����l�<�0����Z�0�
��-�/�	�"�	)�	)�I����)�$�$�B��b�2�6�'�"�"�B����R��$�$�$���C�(�(�(�"�$�$�
-���
�
�>�+G�H�H�H��"�b�\�\��� � ��R�(�(�(�#�B��,�,�,�	
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��b�!���B����R��$�$�$���A�&�&�&��b�!���B����R��$�$�$���C�(�(�(��b�!���B����R��$�$�$���B�H�M�M�#�$6�$6���
�
�g�8N�8N�$N�O�O�O��b�!���B����R��$�$�$���B�H�M�M�#�$6�$6���
�
�g�8N�8N�$N�O�O�O��b�"�&�!�!�B����R��$�$�$���C�(�(�(�(�?	)�	)s�)AD�D	�D	c����gd�}gd�}gd�}�fd�}|||fD]
}||���t|�j���t|�j���t|�j���fD]
}||���dS)N)rprrrsrt)r�r�r�r�)r�rrr�rtc�l��tj�t|��d�j���tj�t|t
��d�j���tj�t|t
��d�j���tj�t|d��d�j���tj�t|d��d�j���tj�t|d	��d�j���tj�t|d
��d�j���tj�t|d��d
�j���dS)Ng��6ҭ�@�r/rdrarp�$@r�g���Q��?rrr�g�s�c���?rrt)r%�testingrrr`r)r_rKs �r)�_testz+_TestNormGeneral.test_vector.<locals>._test	s�����J�*�*�4��7�7�I�37�8�
+�
=�
=�
=��J�*�*�4��3�<�<��37�8�
+�
=�
=�
=��J�*�*�4��C�4�=�=�#�37�8�
+�
=�
=�
=��J�*�*�4��1�:�:�t�37�8�
+�
=�
=�
=��J�*�*�4��2�;�;�	�37�8�
+�
=�
=�
=��J�*�*�4��1�:�:�y�37�8�
+�
=�
=�
=��J�*�*�4��2�;�;�9M�37�8�
+�
=�
=�
=��J�*�*�4��1�:�:�q�37�8�
+�
=�
=�
=�
=�
=r+r8)rr�)rKr2r3rrzr_s`     r)�test_vectorz_TestNormGeneral.test_vectors�����L�L�������N�N��	=�	=�	=�	=�	=�$�Q���	�	�A��E�!�H�H�H�H�����)�)�)�5��$�'�+B�+B�+B�����)�)�)�+�	�	�A��E�!�H�H�H�H�	�	r+c	�*�	�
���tgd�gd�g|j����	ddddddtjtjfD]���	�fd	�t	�	jd��D��}t
t�	�d�
��|���	�fd�t	�	jd��D��}t
t�	�d�
��|����tjdd|j����	ddd
���
�
j
}dddddtjtjdfD]�tjt	||��d��D]�}|\}}|dkr||z
}|dkr||z
}||krttt�
�|�
���Bt�
�|�
��}|||zz
�||kr)�
��fd�t	�
j���D��}n(�
��fd�t	�
j���D��}t
||����dS)N�rprrrs�rtr�r,r8r�rrprrrsc�F��g|]}t�dd�|f������S�N��ord�r�r��kr��orders  ��r)r�z._TestNormGeneral.test_axis.<locals>.<listcomp>(s2���M�M�M�a��a����1��g�5�1�1�1�M�M�Mr+�r�r�c�F��g|]}t�|dd�f������Sr�r�r�s  ��r)r�z._TestNormGeneral.test_axis.<locals>.<listcomp>*s2���M�M�M�a��a��1�1�1��g�5�1�1�1�M�M�Mr+�rtr�r�c�l��g|]0}t�dd��|����������1S�Nr�r�)r�take�r�r��B�k_indexr�s  ���r)r�z._TestNormGeneral.test_axis.<locals>.<listcomp>@sT���$F�$F�$F�()�%)��1�1�1����1�7��)C�)C��$O�$O�$O�$F�$F�$Fr+c�v��g|]5}t�dd��|����j������6Sr�)rr�r�r�s  ���r)r�z._TestNormGeneral.test_axis.<locals>.<listcomp>CsW���$F�$F�$F�()�%)��1�1�1����1�7��)C�)C�)E�5�$Q�$Q�$Q�$F�$F�$Fr+)rr�r%�Infrr�rrr(r�r�r��combinationsrr
)
rK�	expected0�	expected1�ndr��row_axis�col_axisr�r*r�r�r�r�s
         @@@@r)�	test_axisz_TestNormGeneral.test_axis"s�������
�9�9�9�i�i�i�(���8�8�8���B��1�a��B�F�R�V�G�<�	G�	G�E�M�M�M�M�M�5�����;L�;L�M�M�M�I���Q�E�� :� :� :�I�F�F�F�M�M�M�M�M�5�����;L�;L�M�M�M�I���Q�E�� :� :� :�I�F�F�F�F�
�I�a��4�7�+�+�+�3�3�A�q�!�<�<��
�V���B��2�q�"�&�2�6�'�5�A�	5�	5�E�!�.�u�b�S�"�~�~�q�A�A�
5�
5��%)�"��(��a�<�<���N�H��a�<�<���N�H��x�'�'�!�*�d�A�5�t�L�L�L�L�L��Q�E��5�5�5�A�!�H�x�$7�8�G��(�*�*�$F�$F�$F�$F�$F�$F�-2�1�7�7�3C�-D�-D�$F�$F�$F���$F�$F�$F�$F�$F�$F�-2�1�7�7�3C�-D�-D�$F�$F�$F��'��8�4�4�4�4�)
5�	5�	5r+c��tjdd|j����ddd��}d}d}t	|dd�	��}t	|ddd
���}ttj|��||�dd�����d
}t|j	|k|�|j	|dd����ddddddtj
tj
fD]�}t|j��D]�}t	|||�	��}t	|||d
���}ttj|��||�||�����t|j	��}d||<t|��}t|j	|k|�|j	|||��������dddddtj
tj
ddf	D]�}tjt|j��d��D]�}t	|||�	��}t	|||d
���}ttj|��||�||�����t|j	��}d||d<d||d<t|��}t|j	|k|�|j	|||�����͌�dS)Nrpr�r8rrrsrtzorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}r�T)r�r��keepdims)rL)rprprpr�rr�r��nuc)r%r(r�r�rr�squeeze�formatrr�r�rr�r�r�r��permutations)	rKr��allclose_err�	shape_errr*�found�expected_shaper�r�s	         r)�
test_keepdimsz_TestNormGeneral.test_keepdimsGs'���I�a��4�7�+�+�+�3�3�A�q�!�<�<��.��Q�	���t�$�/�/�/���Q�D�t�d�;�;�;����
�5�)�)�8� ,� 3� 3�D�$� ?� ?�	A�	A�	A�	A�"�����~�-�� � ���n�d�D�I�I�	K�	K�	K��B��1�a��B�F�R�V�G�<�
	Q�
	Q�E��1�6�]�]�	
Q�	
Q����u�1�5�5�5���Q�E��D�A�A�A����
�5� 1� 1�8�(4�(;�(;�E�1�(E�(E�G�G�G�G�!%�a�g����$%��q�!�!&�~�!6�!6�����~�5�!�(�(���n�e�Q�O�O�Q�Q�Q�Q�	
Q��B��2�q�"�&�2�6�'�5�%�H�	Q�	Q�E��+�E�!�&�M�M�1�=�=�

Q�

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

Q�	Q�	Qr+N)rUrVrWrertr{r�r�rYr+r)rcrc�si������F�F�F�
')�')�')�R���<#5�#5�#5�J(Q�(Q�(Q�(Q�(Qr+rcc�:�eZdZejZd�Zd�Zd�Zd�Zd�Z	dS)�_TestNorm2Dc�v�tt|�gg|j�����d��dS)Nr8r�)rrrr�rSs r)�test_matrix_emptyz_TestNorm2D.test_matrix_emptyws4���T�$�*�*�b�T���*�9�9�:�:�C�@�@�@�@�@r+c���|�gd�gd�g��}tjd}d}||z}|D�]0}|�|��}t	|tj��}|�||��t|d��t��5}|�	td��t	|d��}|�||��t|d��ddd��n#1swxYwYt	|d	��}|�||��t|d��t	|d
��}|�||��t|d��t	|d��}|�||��t|d��t	|tj��}|�||��t|d��t	|d
��}|�||��t|d��t	|d��}|�||��tj�|dd�����2dS)Nr�r=rg�fdFDrbrir�rarprrg�LX�z��?r�r�r�gU&,t=�@r,rw)rr%rjr�rrr_rrrkrlryrms	         r)�test_matrix_return_typez#_TestNorm2D.test_matrix_return_typezs����J�J�	�	�	�9�9�9�-�.�.���l�<�0��
�
��-�/�	�"�%	N�%	N�I����)�$�$�B��b�2�6�'�"�"�B����R��$�$�$���C�(�(�(�"�$�$�
-���
�
�>�+G�H�H�H��"�b�\�\��� � ��R�(�(�(�#�B��,�,�,�	
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��b�!���B����R��$�$�$���C�(�(�(��b�!���B����R��$�$�$���N�3�3�3��b�"���B����R��$�$�$���C�(�(�(��b�"�&�!�!�B����R��$�$�$���C�(�(�(��b�%���B����R��$�$�$���C�(�(�(��b�%���B����R��$�$�$�
�J�*�*�2�/A�1�*�M�M�M�M�K%	N�%	Ns�AC<�<D	�D	c�"�|�ddgddgg|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��dS)Nrprsr�r�r8g���T"@r�r�rxg(@rdr�rfrrg��W�?"@r�gї�ʄ�?�nofror�r)rr�rrrrr
r�s  r)�test_matrix_2x2z_TestNorm2D.test_matrix_2x2�sB���J�J��A���A��'�t�w�J�7�7���D��G�G�Y�/�/�/��D��E�N�N�I�6�6�6��D��E�N�N�D�1�1�1��D��C�L�L�$�/�/�/��D��S�D�M�M�3�/�/�/��D��A�J�J��-�-�-��D��B�K�K��-�-�-��D��A�J�J�(:�;�;�;��D��B�K�K�)<�=�=�=��j�$��7�3�3�3��j�$��2�.�.�.��j�$��1�-�-�-�-�-r+c��d|�gd�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��dS)Ng�������?r})r,rr�)rsrrrpr8grj=Q0�?r�r�g�B+pc�?g�������?g333333�?rprar�g�������?rrg�&��.d�?r�gܸՠ���?)rr�rrrr�s  r)�test_matrix_3x3z_TestNorm2D.test_matrix_3x3�s��
��J�J�	�	�	�9�9�9�i�i�i�8���J�H�H�
I���D��G�G�%9�:�:�:��D��E�N�N�,@�A�A�A��D��E�N�N�,>�?�?�?��D��C�L�L�#�.�.�.��D��S�D�M�M�3�/�/�/��D��A�J�J��,�,�,��D��B�K�K��-�-�-��D��A�J�J�(;�<�<�<��D��B�K�K�)<�=�=�=�=�=r+c�T�|�gd�gd�g|j���}tjdd|j����ddd��}ttt|d	d
��ttt|dd
��tttddgd	d��tttddgdd��tttddgdd��d
D]Y}ttt||d��ttt||d��ttt||d���Zttjt|dd��ttjt|dd��ttt|dd��dS)Nr}r~r8rpr�rrrsrtr�rr��test�rrsrT)rprr�rrrs)rrprr)	rr�r%r(r�rr
r�	AxisError)rKr�r�r�s    r)�
test_bad_argsz_TestNorm2D.test_bad_args�sr��
�J�J�	�	�	�9�9�9�-�T�W�J�=�=���I�a��4�7�+�+�+�3�3�A�q�!�<�<��
	�j�$��5�!�4�4�4��j�$��5�!�4�4�4��j�$��A���t�<�<�<��j�$��A���t�<�<�<��j�$��A����=�=�=��	>�	>�E��*�d�A�u�d�;�;�;��*�d�A�u�f�=�=�=��*�d�A�u�f�=�=�=�=�	�b�l�D�!�T�1�5�5�5��b�l�D�!�T�6�:�:�:��j�$��4��;�;�;�;�;r+N)
rUrVrWr%rr�r�r�r�r�rYr+r)r�r�rso������
�H�E�A�A�A�1N�1N�1N�f.�.�.� >�>�>�"<�<�<�<�<r+r�c��eZdZdS)�	_TestNormNr%rYr+r)r�r��r�r+r�c� �eZdZd�Zd�Zd�ZdS)�TestNorm_NonSystematicc��tjdtj���}tt	|d���dd���dS)N�
r8rsr�g�����L)@rrrw)r%r(�
longdoubler1rr<s  r)�test_longdouble_normz+TestNorm_NonSystematic.test_longdouble_norm�s?��
�I�b��
�.�.�.����Q�A�����q�A�A�A�A�A�Ar+c��tjdgtj���}tt	|d���dd���dS)Ni�r8rsr�lr�rw)r%r�int32r1rr<s  r)�test_intminz"TestNorm_NonSystematic.test_intmin�sA��
�H�h�Z�r�x�0�0�0����Q�A������C�C�C�C�C�Cr+c��tjdtj���}d|d<d|d<d}ttj�|d�	��|d
���|�tj��}ttj�|d�	��|d���|�tj��}ttj�|d�	��|d
���dS)N�rrr8y@@ry�@rpg���V;'@rsr�r�rw�	r�)	r%r��clongdoubler1rrr��
complex128rA)rKr�rCs   r)�test_complex_high_ordz,TestNorm_NonSystematic.test_complex_high_ord�s����H�T���0�0�0����!����!������	���q�a�� 8� 8�#�r�J�J�J�J�
�H�H�R�]�#�#����	���q�a�� 8� 8�#�q�I�I�I�I�
�H�H�R�\�"�"����	���q�a�� 8� 8�#�q�I�I�I�I�I�Ir+N)rUrVrWr�r�r�rYr+r)r�r��sL������B�B�B�D�D�D�
J�
J�
J�
J�
Jr+r�c� �eZdZejZdZdS)�_TestNormDoubleBaser-N)rUrVrWr%rr�r`rYr+r)r�r�
s������	��B�
�C�C�Cr+r�c� �eZdZejZdZdS)�_TestNormSingleBaser,N)rUrVrWr%r�r�r`rYr+r)r�r�s������	��B�
�C�C�Cr+r�c� �eZdZejZdZdS)�_TestNormInt64Baser-N)rUrVrWr%�int64r�r`rYr+r)r�r�s������	��B�
�C�C�Cr+r�c��eZdZdS)�TestNormDoubleNr%rYr+r)r�r�r�r+r�c��eZdZdS)�TestNormSingleNr%rYr+r)r�r�r�r+r�c��eZdZdS)�
TestNormInt64Nr%rYr+r)r�r�!r�r+r�c��eZdZd�Zd�ZdS)�TestMatrixRankc��tdttjd������tjd��}d|d<tt|��d��tttjd����d��ttgd���d��tttjd	����d��ttdg��d��tj|tjd��tjd��g��}tt|��tjgd
�����ttd��d��dS)Nrtr��r�r�rsrtr)rprrrrp)rt)rsrtr)rrr%rur>r)rK�I�mss   r)�test_matrix_rankzTestMatrixRank.test_matrix_rank's,���Q��B�F�1�I�I�.�.�/�/�/��F�1�I�I����&�	��[��^�^�Q�'�'�'��[���&�!1�!1�2�2�A�6�6�6��[����.�.��2�2�2��[���$���0�0�!�4�4�4��[�!��%�%�q�)�)�)�
�X�q�"�&��)�)�R�X�e�_�_�5�
6�
6���[��_�_�b�h�y�y�y�&9�&9�:�:�:��[��^�^�Q�'�'�'�'�'r+c�&�tdttjd��d�����tdttjd��d�����tdttjd��d�����tjd��}d|d<td	t|d�����d
|d<tdt|dd�����td	t|dd
�����dS)NrtTrzrprtrr�r�rsg:�0�yE>g��|"�BE>)r@�tolg�;䡈�E>)rrr%rur�r>)rKr�s  r)�test_symmetric_rankz"TestMatrixRank.test_symmetric_rank;s����Q��B�F�1�I�I��>�>�>�?�?�?��Q��B�G�F�O�O�t�D�D�D�E�E�E��Q��B�H�V�$4�$4��E�E�E�F�F�F��F�1�I�I����&�	��Q��A��6�6�6�7�7�7���&�	��Q��A��7�C�C�C�D�D�D��Q��A��7�C�C�C�D�D�D�D�Dr+N)rUrVrWr�r�rYr+r)r�r�%s7������(�(�(�(E�E�E�E�Er+r�c��tj�d��}td��D]�}|�d���}|dd�df|dd�dfz|dd�df<tt
|��d��|dd�d	f|dd�d
fz|dd�df<tt
|��d����dS)
Ni�3r�)�(r���sizerprrrr�rtr�rsrn)r%r��RandomStater�normalrr)�rng�i�Xs   r)�test_reduced_rankr�Is���
�)�
�
��
)�
)�C�
�3�Z�Z�(�(���J�J�H�J�%�%���A�A�A�q�D�'�A�a�a�a��d�G�#��!�!�!�Q�$���[��^�^�Q�'�'�'��A�A�A�q�D�'�A�a�a�a��d�G�#��!�!�!�Q�$���[��^�^�Q�'�'�'�'�(�(r+c	��eZdZejZd�Zej�ddggd���d���Z	d�Z
d�Zd�Zej�d	gd
���ej�dgd���ej�d
ej
ejejejg��d�������ZdS)�TestQRc��t|��}|j}|j\}}t||��}t	j|d���\}}t
|j|k��t
|j|k��t
t||����t
t||����t
|j||fk��t
|j||fk��tt||��|��tt|j
���|��tj
|����ttj|��|��t	j|d���\}	}
t
|	j|k��t
|
j|k��t
t|	|����t
t|
|����t
|	j||fk��t
|
j||fk��tt|	|
��|��tt|	j
���|	��tj
|����ttj|
��|
��t	j|d���}t
|j|k��t
t||����t||
��dS)N�complete��mode�reducedr)r#r0r�r�r�qrrr$rrr�r~r%ru�triu)rKr2�a_type�a_dtyper�r�r��qr�q1�r1�r2s            r)�check_qrzTestQR.check_qrZs����a�����'���w���1���1�I�I���y���,�,�,���1����7�"�#�#�#����7�"�#�#�#��
�1�f�%�%�&�&�&��
�1�f�%�%�&�&�&����A�q�6�!�"�"�"����A�q�6�!�"�"�"��C��1�I�I�q�)�)�)��C�����
�
�A�.�.���q�	�	�:�:�:��B�G�A�J�J��*�*�*���1�9�-�-�-���B����G�#�$�$�$����G�#�$�$�$��
�2�v�&�&�'�'�'��
�2�v�&�&�'�'�'����Q��F�"�#�#�#����Q��F�"�#�#�#��C��B�K�K��+�+�+��C���	�	���R�0�0�"�&��)�)�<�<�<��B�G�B�K�K��,�,�,��Y�q�s�
#�
#�
#�����G�#�$�$�$��
�2�v�&�&�'�'�'��B��#�#�#�#�#r+r�r�)�rsrr�rkc��t||��}tj||f��}|�|��tj�|d���\}}t
|jtj��t
|jtj��t
|j	||f��t
|j	|f��dS)N�rawr�)
r�r%r�r�rr�rr0rr�)rKr�r�r�r2�h�taus       r)�
test_qr_emptyzTestQR.test_qr_empty�s���
��1�I�I���H�a��V�����
�
�a��������a�e��,�,���3��Q�W�b�i�(�(�(��S�Y��	�*�*�*��Q�W�q�!�f�%�%�%��S�Y���%�%�%�%�%r+c��|�ddgddgddggtj���}tj|d�	��\}}t|jtjk��t|jtjk��t|jd
k��t|jdk��tj|jd�	��\}}t|jtjk��t|jtjk��t|jdk��t|jdk��dS)
Nrprrrsrtr�r,r8r�r�r�r�r�)	rr%rrr�rr0r�r�)rKr2r�r�s    r)�
test_mode_rawzTestQR.test_mode_raw�s��
�J�J��A���A���A��/�r�y�J�A�A����1�5�)�)�)���3����2�9�$�%�%�%���	�R�Y�&�'�'�'����6�!�"�"�"���	�T�!�"�"�"���1�3�U�+�+�+���3����2�9�$�%�%�%���	�R�Y�&�'�'�'����6�!�"�"�"���	�T�!�"�"�"�"�"r+c�\�|�ddgddgg��}|�ddgddgddgg��}dD]p}|�|��}|�|��}|�|��|�|��|�|j���qdD]|}dd|�|��zz}dd|�|��zz}|�|��|�|��|�|j���}dS)	Nrprrrsrtr�r,�fd��?)rr�r�r�)rKr2r3r��m1�m2s      r)�test_mode_all_but_economicz!TestQR.test_mode_all_but_economic�s2���J�J��A���A��'�(�(���J�J��A���A���A��/�0�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�����|��|
��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�����|��|
��ttj|ddd�dd�f��|��t	j|d���}
t
|
j|k��t
t|
|����t|
|��dS)	Nr�r�r�r�rr.r�r)r#r0r�r�rr�rr$rr
r%r	r�rr~r�)rKr2r�r�r�r�r�r�r�I_mat�stack_I_matr�r�r�s              r)�check_qr_stackedzTestQR.check_qr_stacked�s|���a�����'���w�r�s�s�|���1���1�I�I���y���,�,�,���1����7�"�#�#�#����7�"�#�#�#��
�1�f�%�%�&�&�&��
�1�f�%�%�&�&�&���������A��&�'�'�'���������A��&�'�'�'��F�1�a�L�L�!�,�,�,���A�G�B�K�(�(���o�e�����������~�a�'7�7�9�9���F�8�A�r�2�#6�#6�#;�#;�#=�#=�q�A�A�;�O�O�O��B�G�A�c�1�1�1�a�a�a�i�L�1�1�1�5�5�5���1�9�-�-�-���B����G�#�$�$�$����G�#�$�$�$��
�2�v�&�&�'�'�'��
�2�v�&�&�'�'�'�������
�!�Q��'�(�(�(�������
�!�Q��'�(�(�(��F�2�r�N�N�A�.�.�.���B�H�R�L�)�)���o�e����"��
���"����(9�9�;�;���F�8�B��B�#7�#7�#<�#<�#>�#>��C�C�'�	)�	)�	)��B�G�B�s�A�A�A�q�q�q�y�M�2�2�B�7�7�7��Y�q�s�
#�
#�
#�����G�#�$�$�$��
�2�v�&�&�'�'�'��B��#�#�#�#�#r+r�))rsrt)rtrsrtr�r��
outer_size)r�r�)rrrsrtr�c�>�tj�||z����|��}tj�||z����|��}|�|��|�|d|zz��dS)Nr�r)r%r�r�r�r	)rKr
r�r�r�r�s      r)�test_stacked_inputszTestQR.test_stacked_inputs�s���
�I���*�t�"3��4�4�;�;�B�?�?���I���*�t�"3��4�4�;�;�B�?�?�����a� � � ����a�#�a�%�i�(�(�(�(�(r+N)rUrVrWr%rr�r�r�r1r�r�rr	rrrrrrYr+r)r�r�VsI�������H�E�$$�$$�$$�N�[���c�3�Z�*�*�*���

&�
&���

&�#�#�#�, � � �"+$�+$�+$�Z�[���V�&�&�&����[���\�,!�,!�,!�"�"��[���T�
�	�2�9�
�
�B�J�$ �!�!�)�)�!�!�"�"���)�)�)r+r�c���eZdZej�dgd���ej�dejejej	ej
f��d�����Zd�ZdS)�TestCholeskyr�)r�r��rsrs)�2r)rsr�r�r0c�r�tj�d��tjj|�}tj|tj��r|dtjj|�zz}t
tt|������}d|dd�<tj	|�
|�����|��}tj||���}tj
�|��}tj	||�
|�������}tj��5d|jdztj|��jz}ddd��n#1swxYwYt'||||�d|�d	|�d	|���
��dS)Nrpr)r�r�r�r8i�r� �
)�atolrL)r%r�r��randnr��complexfloatingr�rr�r
rr~rr�cholesky�_no_nep50_warningr��finfo�epsr)rKr�r0r2�trr3rs        r)�test_basic_propertyz TestCholesky.test_basic_property�s���	�	���q�����I�O�U�#��
�=��� 2�3�3�	/��B�r�y���.�.�.�A���s�5�z�z�"�"�#�#����"�#�#���I�a�k�k�!�n�n�)�)�+�+�Q�/�/���J�q��&�&�&���I���q�!�!���I�a����Q���,�,�.�.�/�/��
�
!�
#�
#�	:�	:������#�b�h�u�o�o�&9�9�D�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:���1�4�E�1M�1M�E�1M�1M�Q�1M�1M�!�1M�1M�N�N�N�N�N�Ns�+F�F�Fc���Gd�dtj��}tjdtj����|��}tj|��}t|j|j��t|j
jtju��tt|tj����tjdtj����|��}tj|��}t|j|j��t|j
jtju��tt|tj����dS)Nc��eZdZdS)�/TestCholesky.test_0_size.<locals>.ArraySubclassNr%rYr+r)r&rr'r+r&r=r8)rprr)r%r&r>r?r�rrrr�rr0r#r@r$rArBs    r)r,zTestCholesky.test_0_sizes(��	�	�	�	�	�B�J�	�	�	��H�Y�b�g�.�.�.�3�3�M�B�B���o�a� � ���Q�W�c�i�(�(�(���	��"�*�,�-�-�-��
�3��
�+�+�,�,�,��H�Y�b�l�3�3�3�8�8��G�G���o�a� � ���Q�W�c�i�(�(�(���	��"�,�.�/�/�/��
�3��
�+�+�,�,�,�,�,r+N)
rUrVrWr�r�r1r%r�r@rAr�rr,rYr+r)rr�s��������[����@�@�@����[����"�*�b�j�"�,��
�F���O�O�����O�(-�-�-�-�-r+rc��tjdkrd}nd}tjtjfD]�}tjd|���}|�|��}|�d�����}t|j	jd��tjtjtj
fD]?}||��}t|||����t|||�����@��dS)N�little�<rRrtr8�S�=)�sys�	byteorderr%r�r@ru�newbyteorder�byteswaprr0rr5r�r�r)�native�dttr��n_arr�sw_arr�routinerCs       r)�test_byteorder_checkr.$s���
�}�� � �������
�B�J�'�5�5���f�Q�c�"�"�"��� � ��(�(���!�!�#�&�&�/�/�1�1���S�Y�(�#�.�.�.��
�F�J���<�	5�	5�G��'�#�,�,�C��s�G�G�E�N�N�3�3�3��s�G�G�F�O�O�4�4�4�4�
	5�5�5r+r$r%c��tjddgddgg��}tjddgddgg��}tjgd���ddd�}||d<||d<ttjjtjj|��dS)Nrprrrsrt)rtrtrrrr.rk)r%rr>rrrr5)�
invertible�non_invertibler�s   r)� test_generalized_raise_multiloopr29s���
��A�q�6�A�q�6�*�+�+�J��X��1�v��1�v�.�/�/�N�
�������q�t�!�t�$�A�
�A�c�F��A�d�G��"�)�'�����:�:�:�:�:r+c��d}	tj��}n+#ttf$rt	jd��YnwxYw|dk�rEtjd��tjd��ddl}|�|j	d��	tjj�
��n9#t$rYn-t$r!tjtj��YnwxYw	tjdgg��}tjj�ddd|d||dd�	�	n<#t$r/}dt)|��vrtj|��Yd}~nd}~wwxYwtjtj��dStj��\}}tj|��|krt	jd��dSdS)	N�zNot POSIX or fork failed.rrprkrazDORGQR 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�dorgqrrG�wait�WEXITSTATUS)�	XERBLA_OK�pidr;r2r��statuss      r)�test_xerbla_overriderHHs���
�I�1��g�i�i�����^�$�1�1�1���/�0�0�0�0�0�1�����a�x�x�
������
�������������8�/��8�8�8�	#��I�!�(�(�*�*�*�*���	�	�	��D��	#�	#�	#��H�R�\�"�"�"�"�"�	#����
	$���2�$�� � �A��I�!�(�(��1�a����1�a��
�
�
�
���	$�	$�	$�*�c�!�f�f�4�4����#�#�#����������		$����	����������g�i�i���V�
�>�&�!�!�Y�.�.��K�5�6�6�6�6�6�/�.s?��%A�A�#B6�6
C,�'C,�+C,�0AD3�3
E,�=%E'�'E,zCannot start subprocessc�$�ddg}tjd��}|D]t}|�dd|���}tjt
jd|g��|�dd|���}tjt
jd|g���udS)	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)rMrLrN)�textwrap�dedentr��
subprocess�
check_callr%�
executable)�bad_libs�templaterN�codes    r)�test_sdot_bug_8577rWys���"�9�-�H���
 �
	�
	�H��<�<�����&:�"�'.��0�0����s�~�t�T�:�;�;�;����%9�"�'.��0�0����s�~�t�T�:�;�;�;�;�<�<r+c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestMultiDotc
���tj�d��}tj�d��}tj�d��}tt|||g��|�|���|����tt|||g��tj|tj||������dS�N�r,rr�rrr,�r%r�rrr)rKr�r��Cs    r)�(test_basic_function_with_three_argumentsz5TestMultiDot.test_basic_function_with_three_arguments�s���
�I���V�$�$���I���V�$�$���I���V�$�$���I�q�!�Q�i�0�0�!�%�%��(�(�,�,�q�/�/�B�B�B��I�q�!�Q�i�0�0�"�&��B�F�1�a�L�L�2I�2I�J�J�J�J�Jr+c�J�tj�d��}tj�d��}tt||g��|�|����tt||g��tj||����dSr[r^)rKr�r�s   r)�&test_basic_function_with_two_argumentsz3TestMultiDot.test_basic_function_with_two_arguments�s~���I���V�$�$���I���V�$�$���I�q�!�f�-�-�q�u�u�Q�x�x�8�8�8��I�q�!�f�-�-�r�v�a��|�|�<�<�<�<�<r+c��tj�d��}tj�d��}tj�d��}tj�d��}tt||||g��|�|���|���|����dS)Nr\r]�rrrpr^)rKr�r�r_�Ds     r)�9test_basic_function_with_dynamic_programming_optimizationzFTestMultiDot.test_basic_function_with_dynamic_programming_optimization�s���
�I���V�$�$���I���V�$�$���I���V�$�$���I���V�$�$���I�q�!�Q��l�3�3�Q�U�U�1�X�X�\�\�!�_�_�5H�5H��5K�5K�L�L�L�L�Lr+c�J�tj�d��}tj�d��}tj�d��}tj�d��}tt||||g��jd��dS)Nrrr]r\r�r��r%r�rrr�)rK�A1dr�r_res     r)�test_vector_as_first_argumentz*TestMultiDot.test_vector_as_first_argument�s����i���q�!�!���I���V�$�$���I���V�$�$���I���V�$�$��	�Y��Q��1�~�.�.�4�d�;�;�;�;�;r+c�J�tj�d��}tj�d��}tj�d��}tj�d��}tt||||g��jd��dS)Nr\r]rr)r,rh)rKr�r�r_�D1ds     r)�test_vector_as_last_argumentz)TestMultiDot.test_vector_as_last_argument�s����I���V�$�$���I���V�$�$���I���V�$�$���i���q�!�!��	�Y��1�a��~�.�.�4�d�;�;�;�;�;r+c�J�tj�d��}tj�d��}tj�d��}tj�d��}tt||||g��jd��dS)Nrrr]r\rYrh)rKrir�r_rls     r)�&test_vector_as_first_and_last_argumentz3TestMultiDot.test_vector_as_first_and_last_argument�s����i���q�!�!���I���V�$�$���I���V�$�$���i���q�!�!��	�Y��Q��3�/�0�0�6��;�;�;�;�;r+c
���tj�d��}tj�d��}tj�d��}tjd��}t|||g|���}||usJ�t	||�|���|����t	|tj|tj||������dS)Nr\r]�r'�r%r�r>rrr)rKr�r�r_r'�rets      r)�test_three_arguments_and_outz)TestMultiDot.test_three_arguments_and_out�s���
�I���V�$�$���I���V�$�$���I���V�$�$���h�v������A�q�	�s�+�+�+���c�z�z�z�z��C����q�����a���1�1�1��C����2�6�!�Q�<�<�!8�!8�9�9�9�9�9r+c�h�tj�d��}tj�d��}tjd��}t||g|���}||usJ�t	||�|����t	|tj||����dS)Nr\r])r,r,rqrr)rKr�r�r'rss     r)�test_two_arguments_and_outz'TestMultiDot.test_two_arguments_and_out�s����I���V�$�$���I���V�$�$���h�v������A��C�(�(�(���c�z�z�z�z��C����q���*�*�*��C����1���.�.�.�.�.r+c���tj�d��}tj�d��}tj�d��}tj�d��}tjd��}t||||g|���}||usJ�t	||�|���|���|����dS)Nr\r]rd)r,rprqrr)rKr�r�r_rer'rss       r)�-test_dynamic_programming_optimization_and_outz:TestMultiDot.test_dynamic_programming_optimization_and_out�s���
�I���V�$�$���I���V�$�$���I���V�$�$���I���V�$�$���h�v������A�q�!��#�.�.�.���c�z�z�z�z��C����q�����a���!4�!4�Q�!7�!7�8�8�8�8�8r+c	�J�tj�d��tj�d��tj�d��tj�d��tj�d��tj�d��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|����dS)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�)rrprprsrsrs)rrrrrsrsrs)rrrrsrsrs)rrrrrtr�)rrrrrr�)rrrrrrr8rpT)�return_costsr�)r%r�r�intrrr�)rK�arrays�
m_expected�
s_expectedr�r�s      r)�test_dynamic_programming_logicz+TestMultiDot.test_dynamic_programming_logic�s����)�"�"�8�,�,��)�"�"�8�,�,��)�"�"�7�+�+��)�"�"�7�+�+��)�"�"�8�,�,��)�"�"�8�,�,�.���X�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�K�L�L�
��X�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�8�
@C�D�D�D�
�	�a��
�,�V�$�G�G�G���1�	�B�G�A�c�r�c�1�2�2�g�J�/�/��G�J�s��s�A�B�B�w�$7�8�8�	:�	:�	:��B�G�A�J�J���
�(;�(;�<�<�<�<�<r+c��tttg��ttttj�d��g��dS)Nr)rr
rr%r�rSs r)�test_too_few_input_arraysz&TestMultiDot.test_too_few_input_arrayss?���j�)�R�0�0�0��j�)�b�i�.>�.>�v�.F�.F�-G�H�H�H�H�Hr+N)rUrVrWr`rbrfrjrmrortrvrxr�r�rYr+r)rYrY�s�������K�K�K�=�=�=�M�M�M�<�<�<�<�<�<�<�<�<�:�:�:�/�/�/�
9�
9�
9�=�=�=�<I�I�I�I�Ir+rYc�8�eZdZej�dejd��dfejd��dfg��d���Zej�ddd	g��d
���Z	ej�ddd
g��d���Z
d�ZdS)�
TestTensorinvzarr, ind�rtr,rnrrrr�rsrsrrrpc��tt��5tj||���ddd��dS#1swxYwYdS)N��ind)rrr�	tensorinv)rKr�r�s   r)�test_non_square_handlingz&TestTensorinv.test_non_square_handling s���
�;�
'�
'�	+�	+���S�c�*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s
�9�=�=z
shape, ind)�rtr,rnrsrr)��rnrsrpc���tjd��}||_tj||���}|j|d�|jd|�z}|j}t||��dS)Nr��r2r�)r%rur�rr�r)rKr�r�r2�ainvr*�actuals       r)�test_tensorinv_shapez"TestTensorinv.test_tensorinv_shape(sh��
�F�2�J�J�������!��-�-�-���7�3�4�4�=�1�7�4�C�4�=�0������V�X�&�&�&�&�&r+r�rr�c���tjd��}d|_tt��5tj||���ddd��dS#1swxYwYdS)Nr�r�r�)r%rur�rr
rr�)rKr�r2s   r)�test_tensorinv_ind_limitz&TestTensorinv.test_tensorinv_ind_limit5s���
�F�2�J�J�����
�:�
&�
&�	+�	+���q�c�*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s�A�A�Ac��tjd��}d|_tj|d���}tjd��}t
tj||d��tj�||����dS)Nr�r�rpr�)	r%rur�rr�r�r�	tensordot�tensorsolve)rKr2r�r3s    r)�test_tensorinv_resultz#TestTensorinv.test_tensorinv_result>sn���F�2�J�J��������q�)�)�)���G�B�K�K�����T�1�a�0�0�"�)�2G�2G��1�2M�2M�N�N�N�N�Nr+N)rUrVrWr�r�r1r%r�r�r�r�r�rYr+r)r�r�s��������[���Z�	����	�	��"�	����	�	�Q��*
���+�+�	��+��[���\���,
���
'�'���
'��[���U�	�2�%
���+�+���+�O�O�O�O�Or+r�c���eZdZej�dejd��dfejd��dfg��d���Zej�dgd���d	���Z	dS)
�TestTensorsolveza, axesr�Nr�)rrrc���tt��5tj|jdd���}tj|||���ddd��dS#1swxYwYdS�Nrrr|)rrr%r�r�rr�)rKr2r}r3s    r)r�z(TestTensorsolve.test_non_square_handlingIs���
�;�
'�
'�	0�	0���������$�$�A���q�!�$�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�9A�A�"Ar�))rrrsr,)rsrtrtrs)rrsrsrc	��tjj|�}tj|jdd���}tj�||��}ttj||t|j�����|��dSr�)
r%r�rr�r�rr�rr�r�)rKr�r2r3r�s     r)�test_tensorsolve_resultz'TestTensorsolve.test_tensorsolve_resultRsq��
�I�O�U�#���G�A�G�B�Q�B�K� � ���I�!�!�!�Q�'�'�����Q���A�G���=�=�=�q�A�A�A�A�Ar+)
rUrVrWr�r�r1r%r�r�r�rYr+r)r�r�Gs��������[���Y�	����	�	��%�	����	�	�V�$�)
���0�0�	��0�
�[���W�/�/�/���B�B���B�B�Br+r�c���tjddgddggd���}ttd��5t	j|��ddd��dS#1swxYwYdS)Nrpr�rrr��float16r8zunsupported in linalg)r%rrrrr)r�s r)�test_unsupported_commontyper�\s���
�(�Q��G�a��V�$�I�
6�
6�
6�C�	�Y�(?�	@�	@�����������������������������s�A�A�Az,Bad memory reports lead to OOM in ci testingc���d}tjd|gtj���}tjddgtj���}d|d<tj||��}t|dd��dS)N�rpr8)rr�)r%r>r�r�rr)r�r2r3rs    r)�test_blas64_dotr�gsm��
�A�
��!�Q��r�z�*�*�*�A�
���A��b�j�)�)�)�A��A�d�G�
��q�!���A���4��!�����r+z*Numpy not compiled with 64-bit BLAS/LAPACKc
��tj}tjjj}d}d}|}tjddg|���}tjdg|���}tjdg|���}|||||||dd��}t
|dd��t
|d|��t
|d|��t|�����}	td	|	cxkod
knc��dS)Nlrpr8r�r�infor�r�r�l)
r%r@rr>�dgeqrfr>rr�itemr)
r0�lapack_routiner�r��ldar2�workr��results�lworks
          r)�!test_blas64_geqrf_lwork_smoketestr�qs��
�J�E��Y�*�1�N��A��A�
�C�	��!�Q��u�%�%�%�A�
�8�Q�C�u�%�%�%�D�
�(�A�3�e�
$�
$�
$�C��n�Q��1�c�3��b�!�<�<�G�����!�$�$�$�����q�!�!�!�����q�!�!�!�
��	�	�����E��E�E�!�!�!�!�E�!�!�!�!�"�"�"�"�"r+)r,r-)��__doc__r5r%r�r�rOrQr��numpyr%rrrrrrr	r
�
numpy.corerrr
rrr�numpy.linalgrrrrr�numpy.linalg.linalgr�
numpy.testingrrrrrrrrrr r*r1r9r;r=r[rEr_r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr3r8rFrNrVr[rfrnrrrxr�r�r�r�r�r�r�r�r�r�r�r�r1r�r,r3rJrRrZrcr�r�r�r�r�r�r�r�r�r�r�r�rr.r*r2rHr�rWrYr�r�r�r9r�r�r�rYr+r)�<module>r�s�����
�	�	�	�
�
�
�
�����������������
�
�
�
�����P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�������4�4�4�4�4�4�4�4�4�4�4�4�������P�P�P�P�P�P�P�P�P�P�P�P�P�P�=�=�=�=�=�=�������������������������*�*�*�.��9�9�9�9�5�5�5�
7�7�7�
�������,�,�,�,�,�,�,�,�,����	���t����
�����8��J�x��u�r�2�h��R��)��8�8�8��u�b�"�X�V�,�,�,�.�.��J�x��u�r�2�h��R��)��8�8�8��u�b�"�X�V�,�,�,�.�.��J�z��u�r�2�h��R��)��8�8�8��u�l�l�l�L�L�L�1��@�@�@�B�B��J�y��u�w��'�&�&�)9�:�'�J�J�J��u�g�w�'�w�7�7�7�9�9��J�y��u�w��'�&�&�)9�:�'�J�J�J��u�g�w�'�w�7�7�7�9�9��J�{��u�w��'�&�&�)9�:�'�J�J�J��u�0�0�0�2J�2J�2J�K�SZ�[�[�[�]�]��J�u��r�x��f�-�-�-��r�x��F�+�+�+��J� � � ��J�u��y�~�~�a��#�#��y�~�~�a� � �"�"��J�u��y�~�~�a��#�#��y�~�~�a� � �"�"��J�z��A���A����1�v���; � 
� 
� ��F���;��J�~��u�l�l�l�L�L�L�1��@�@�@��u�b�"�X�V�,�,�,�.�.��J�~��u�r�2�h��R��2�r�(�3�6�B�B�B��u�\�\�\��0�0�0�2�2��J�~��u�l�l�l�L�L�L�1��@�@�@��u�b�"�X�V�,�,�,�.�.��J�~��u�r�2�h��R��2�r�(�3�6�B�B�B��u�\�\�\��0�0�0�2�2��J���u�/�/�/�1L�1L�1L�M�U\�^�^�^��u�g�w�'�w�7�7�7�9�9��J���u��g�&��'�(:�W�g�<N�O�W^�`�`�`��u�0�0�0��@�@�@�B�B��J���u�/�/�/�1L�1L�1L�M�U\�^�^�^��u�g�w�'�w�7�7�7�9�9��J���u��g�&��'�(:�W�g�<N�O�W^�`�`�`��u�0�0�0��@�@�@�B�B��J� ��u�/�/�/�1L�1L�1L�M�U\�^�^�^��u�w��(�6�6�*:�;�7�K�K�K�M�M��J� ��u��g�&��'�(:�W�g�<N�O�W^�`�`�`��u�w��(�6�6�*:�V�V�<L�M�U\�]�]�]�_�_��J�v��y�~�~�a��$�$��y�~�~�a� � �"�"��J�u��y�~�~�a��#�#��y�~�~�a� � �"�"��J�u��y�~�~�a��#�#��y�~�~�a� � �"�"��J�u��y�~�~�a��#�#��y�~�~�a� � ��J� � � ��J�u��y�~�~�a��#�#��y�~�~�a� � ��J� � � �e6!�6
�6
�6��r���;��J�y��u�r�2�h��R��)��8�8�8�����J�y��u�r�2�h��R��)��8�8�8�����J�z��u�r�6�l�V�Q�K�0��@�@�@�����J�z��u�r�6�l�V�Q�K�0��@�@�@�����J�x��r�x��f�-�-�-���J� � � ��J�{��A���A�������J���u�r�2�h��R��)�*�*�����J�}��y�~�~�a��#�#����/!�
�
���@���8�	 �	 �	"�	"�"��-'�-'�-'�`����	�	�	�	���1�1�1�1�1�1�1�1�.2�2�2�2�2�>�2�2�2�2�2�2�2�2�n�2�2�2�2�2�2�2�2��2�2�2�	F�	F�	F�	F�	F�n�	F�	F�	F�	I�	I�	I�	I�	I��	I�	I�	I�
+�
+�
+�
+�
+�>�
+�
+�
+����&$�$�$�+�+�+�+�+�%�'F�+�+�+�73�73�73�73�73�
�73�73�73�t/�/�/�/�/�#�%D�/�/�/�0�0�0�0�0�h�0�0�0�.)�)�)�)�)�'�)H�)�)�)�-�-�-�-�-�,�-�-�-�62�2�2�2�2�#�%D�2�2�2�!+�!+�!+�!+�!+�h�!+�!+�!+�H5�5�5�5�5�5�5�5�,�,�,�,�,�#�%D�,�,�,�
$�
$�
$�
$�
$�h��
$�
$�
$� ,�,�,�,�,�)�+G�,�,�,�&�����(�,����+1�+1�+1�+1�+1�$�&E�+1�+1�+1�\@)�@)�@)�@)�@)�y�@)�@)�@)�F
0�
0�
0�
0�
0�$�'�/�2�
0�
0�
0�	�	�	�	�	�y�	�	�	�0�0�0�0�0�*�,H�0�0�0�	�	�	�	�	�*�	�	�	�#�#�#�#�#�#�%D�#�#�#�('1�'1�'1�'1�'1�h�'1�'1�'1�T3�3�3�3�3�%�'>�3�3�3�<1+�1+�1+�1+�1+�
�1+�1+�1+�h�����I�I�5H�I�I�I�J�J�S:�S:�S:�S:�S:�S:�S:�K�J�S:�l?�?�?�?�?�)�+G�?�?�?�3-�3-�3-�3-�3-�3-�3-�3-�lB�B�B�B�B�%�'C�B�B�B�,8+�8+�8+�8+�8+�8+�8+�8+�v
=�
=�
=�
=�
=�
=�
=�
=�[Q�[Q�[Q�[Q�[Q�}�[Q�[Q�[Q�|u<�u<�u<�u<�u<�-�u<�u<�u<�p	�	�	�	�	��-�	�	�	�J�J�J�J�J�J�J�J�8
�
�
�
�
�-�
�
�
�
�����-����

�
�
�
�
��
�
�
�
	�	�	�	�	�Y� 3�	�	�	�	�	�	�	�	�Y� 3�	�	�	�	�	�	�	�	�I�1�	�	�	�!E�!E�!E�!E�!E�!E�!E�!E�H
(�
(�
(�])�])�])�])�])�])�])�])�@+-�+-�+-�+-�+-�+-�+-�+-�\5�5�5�*����G�$B��C�C�;�;�D�C�;�.7�.7�.7�b����G�$=��>�>����<�<���?�>�<�D~I�~I�~I�~I�~I�~I�~I�~I�B&O�&O�&O�&O�&O�&O�&O�&O�RB�B�B�B�B�B�B�B�*�������G��H�H���I�H������|�#�F��H�H�#�#�H�H�#�#�#r+

Youez - 2016 - github.com/yon3zu
LinuXploit