§
    2@Äjóu  ã                   ó�  — d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZ d„ Zd„ Z G d„ d	ee¦  «        Z G d
„ dee¦  «        Z G d„ de¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Zedk    r e j        ¦   «          dS dS )é    N)ÚvoidÚfloat32Úfloat64Úint32Úint64ÚjitÚguvectorize)ÚTypingError)ÚGUVectorize)ÚTestCaseÚMemoryLeakMixinc           
      óò   — | j         \  }}|j         \  }}t          |¦  «        D ]R}t          |¦  «        D ]@}d|||f<   t          |¦  «        D ]'}|||fxx         | ||f         |||f         z  z  cc<   Œ(ŒAŒSdS )zdocstring for matmulcorer   N)ÚshapeÚrange)	ÚAÚBÚCÚmÚnÚpÚiÚjÚks	            úQC:\Projects\Historical\venv\Lib\site-packages\numba/tests/npyufunc/test_gufunc.pyÚ
matmulcorer      s©   € àŒ7�D€A€qØŒ7�D€A€qÝ�1‰XŒXð -ð -ˆÝ�q‘”ð 	-ð 	-ˆAØˆAˆa�ˆd‰GÝ˜1‘X”Xð -ð -�Ø�!�Q�$��”˜1˜Q ˜Tœ7 Q q¨! t¤WÑ,Ñ,��‘�ð-ð	-ð-ð -ó    c                 ó   — | |z  |z   |d<   d S ©Nr   © )ÚaÚxÚyÚouts       r   Úaxpyr$      s   € Ø�‰U�a‰Z€Cˆ�F€F€Fr   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú
TestGUFuncÚcpuc                 ó~  — d}t          j        |dz  dz  t           j        ¬¦  «                             |dd¦  «        }t          j        |dz  dz  t           j        ¬¦  «                             |dd¦  «        } |||¦  «        }t          j        ||¦  «        }t           j                             ||dd¬¦  «         d S ©	Nié  é   é   ©Údtypeé   çñhãˆµøä>ç:Œ0âŽyE>©ÚrtolÚatol©ÚnpÚaranger   ÚreshapeÚmatmulÚtestingÚassert_allclose)ÚselfÚgufuncÚ	matrix_ctr   r   r   ÚGolds          r   Úcheck_matmul_gufunczTestGUFunc.check_matmul_gufunc   s®   € Øˆ	ÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆàˆF�1�a‰LŒLˆÝŒy˜˜A‰Œˆå
Œ
×"Ò" 1 d°¸DÐ"ÑAÔAÐAÐAÐAr   c                 ó&  — t          t          d| j        ¬¦  «        }|                     t          d d …d d …f         t          d d …d d …f         t          d d …d d …f         f¦  «         |                     ¦   «         }|                      |¦  «         d S ©Nú(m,n),(n,p)->(m,p)©Útarget)r   r   rD   Úaddr   Úbuild_ufuncr?   ©r;   r<   s     r   Útest_gufunczTestGUFunc.test_gufunc(   s”   € Ý�ZÐ)=Ø$(¤Kð1ñ 1ô 1ˆà�
Š
•G˜A˜A˜A˜q˜q˜q˜D”M¥7¨1¨1¨1¨a¨a¨a¨4¤=µ'¸!¸!¸!¸Q¸Q¸Q¸$´-Ð@ÑAÔAÐAØ×#Ò#Ñ%Ô%ˆà× Ò  Ñ(Ô(Ð(Ð(Ð(r   c                 ó   —  t          t          t          d d …d d …f         t          d d …d d …f         t          d d …d d …f         ¦  «        gd| j        ¬¦  «        t          ¦  «        }|                      |¦  «         d S rA   )r	   r   r   rD   r   r?   rG   s     r   Útest_guvectorize_decorz!TestGUFunc.test_guvectorize_decor0   sŒ   € ð1•�d¥7¨1¨1¨1¨Q¨Q¨Q¨3¤<µ¸¸¸¸1¸1¸1¸´½wÀqÀqÀqÈÈÈÀs¼|ÑLÔLÐMØ1Ø$(¤Kð1ñ 1ô 1å1;ñ=ô =ˆð 	× Ò  Ñ(Ô(Ð(Ð(Ð(r   c                 ó6  — t          t          d| j        ¬¦  «        }|                     d¦  «         |                     ¦   «         }t          j        dt
          j        ¬¦  «        } ||||¦  «        }t
          j         	                    |||z  |z   ¦  «         d S )Nú(), (), () -> ()rC   z(intp, intp, intp, intp[:])é
   r,   )
r   r$   rD   rE   rF   r5   r6   Úintpr9   Úassert_equal)r;   r<   r!   r#   s       r   Útest_ufunc_likezTestGUFunc.test_ufunc_like7   sŒ   € õ �TÐ#5¸d¼kÐJÑJÔJˆØ�
Š
Ð0Ñ1Ô1Ð1Ø×#Ò#Ñ%Ô%ˆåŒI�b¥¤Ð(Ñ(Ô(ˆØˆf�Q˜˜1‰oŒoˆå
Œ
×Ò  Q¨¡U¨Q¡YÑ/Ô/Ð/Ð/Ð/r   c                 ól  — t          dgd¦  «        d„ ¦   «         }t          j        d¦  «        } ||d¬¦  «        }t          j        |d¬¦  «        }t          j                             ||¦  «         t          j        |¦  «        } |||d¬¦  «         t          j                             ||¦  «         d S )Nzf8[:],f8[:]ú(n)->(n)c                 ód   — d}t          | j        d         ¦  «        D ]}|| |         z  }|||<   Œd S r   ©r   r   ©r!   ÚresÚaccr   s       r   Ú	my_cumsumz'TestGUFunc.test_axis.<locals>.my_cumsumF   óF   € àˆCÝ˜1œ7 1œ:Ñ&Ô&ð ð �Ø�q˜”t‘�Ø��A‘�ðð r   ©é   é   r   ©Úaxis©r#   r^   )r	   r5   ÚonesÚcumsumr9   rO   Ú
zeros_like)r;   rX   r!   r"   ÚexpectedÚout_kws         r   Ú	test_axiszTestGUFunc.test_axisD   s½   € å	�m�_ jÑ	1Ô	1ð	ð 	ñ 
2Ô	1ð	õ ŒG�HÑÔˆàˆI�a˜aÐ Ñ Ô ˆÝ”9˜Q QÐ'Ñ'Ô'ˆÝ
Œ
×Ò  8Ñ,Ô,Ð,å”˜qÑ!Ô!ˆØˆ	�!˜ aÐ(Ñ(Ô(Ð(Ý
Œ
×Ò ¨Ñ1Ô1Ð1Ð1Ð1r   c                 óV  — t          t          d d …         t          t          d d …         fgd¦  «        d„ ¦   «         }|                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         d S )Nú(n),()->(n)c                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   ŒdS )údocstring for gufuncr   NrT   ©r!   r"   rV   r   s       r   r<   z)TestGUFunc.test_docstring.<locals>.gufuncX   ó>   € õ ˜1œ7 1œ:Ñ&Ô&ð "ð "�Ø˜1œ ™��A‘�ð"ð "r   z numba.tests.npyufunc.test_gufuncr<   z)TestGUFunc.test_docstring.<locals>.gufuncri   )r	   r   ÚassertEqualÚ
__module__Ú__name__Ú__qualname__Ú__doc__rG   s     r   Útest_docstringzTestGUFunc.test_docstringW   s®   € Ý	•u˜Q˜Q˜Q”x¥­¨a¨a¨a¬Ð1Ð2°MÑ	BÔ	Bð	"ð 	"ñ 
CÔ	Bð	"ð
 	×ÒÐ;¸VÔ=NÑOÔOÐOØ×Ò˜ 6¤?Ñ3Ô3Ð3Ø×ÒÐDÀfÔFYÑZÔZÐZØ×ÒÐ/°´Ñ@Ô@Ð@Ð@Ð@r   N)
rn   rm   ro   rD   r?   rH   rJ   rP   re   rq   r   r   r   r&   r&      s{   € € € € € Ø€FðBð Bð Bð)ð )ð )ð)ð )ð )ð0ð 0ð 0ð2ð 2ð 2ð&
Að 
Að 
Að 
Að 
Ar   r&   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTestMultipleOutputsr'   c                 ót  — t          d| j        ¬¦  «        d„ ¦   «         }t          j        dt          j        ¬¦  «        dz   }t          j        |¦  «        }t          j        |¦  «        } ||||¦  «         t          j                             ||¦  «         t          j                             ||¦  «         d S )Nú(x)->(x),(x)rC   c                 ó`   — t          |j        ¦  «        D ]}| |         ||<   | |         ||<   Œd S ©N©r   Úsize©r   r   r   r   s       r   ÚcopyzKTestMultipleOutputs.test_multiple_outputs_same_type_passed_in.<locals>.copyh   sA   € õ ˜1œ6‘]”]ð ð �Ø˜”t��!‘Ø˜”t��!‘�ðð r   rM   r,   é   ©r	   rD   r5   r6   r   rb   r9   r:   )r;   r{   r   r   r   s        r   Ú)test_multiple_outputs_same_type_passed_inz=TestMultipleOutputs.test_multiple_outputs_same_type_passed_ing   s¶   € Ý	�^Ø œKð
)ñ 
)ô 
)ð	ð 	ñ
)ô 
)ð	õ
 ŒI�b¥¤
Ð+Ñ+Ô+¨aÑ/ˆÝŒM˜!ÑÔˆÝŒM˜!ÑÔˆØˆˆQ��1‰ŒˆÝ
Œ
×"Ò" 1 aÑ(Ô(Ð(Ý
Œ
×"Ò" 1 aÑ(Ô(Ð(Ð(Ð(r   c                 óz  — t          d| j        ¬¦  «        d„ ¦   «         }t          j        dt          j        ¬¦  «        dz   }t          j        |¦  «        }t          j        |¦  «        } ||||¦  «         t          j                             ||¦  «         t          j                             |dz  |¦  «         d S )Nru   rC   c                 óf   — t          |j        ¦  «        D ]}| |         ||<   | |         dz  ||<   Œd S ©Nr*   rx   rz   s       r   Úcopy_and_doublezRTestMultipleOutputs.test_multiple_outputs_distinct_values.<locals>.copy_and_doublex   sE   € õ ˜1œ6‘]”]ð  ð  �Ø˜”t��!‘Ø˜”t˜a‘x��!‘�ð ð  r   rM   r,   r|   r*   r}   )r;   r‚   r   r   r   s        r   Ú%test_multiple_outputs_distinct_valuesz9TestMultipleOutputs.test_multiple_outputs_distinct_valuesv   s½   € å	�^Ø œKð
)ñ 
)ô 
)ð	 ð 	 ñ
)ô 
)ð	 õ
 ŒI�b¥¤
Ð+Ñ+Ô+¨aÑ/ˆÝŒM˜!ÑÔˆÝŒM˜!ÑÔˆØˆ˜˜1˜aÑ Ô Ð Ý
Œ
×"Ò" 1 aÑ(Ô(Ð(Ý
Œ
×"Ò" 1 q¡5¨!Ñ,Ô,Ð,Ð,Ð,r   c                 ó¶  — t          d| j        ¬¦  «        d„ ¦   «         }t          j        dt          j        ¬¦  «        dz   }t          j        |¦  «        }t          j        |t          j        ¬¦  «        } ||||¦  «         t          j                             ||¦  «         t          j                             |t          j        d¦  «        z  |¦  «         d S )Nru   rC   c                 óf   — t          |j        ¦  «        D ]}| |         ||<   | |         dz  ||<   Œd S )Nç      ø?rx   rz   s       r   Úcopy_and_multiplyzJTestMultipleOutputs.test_multiple_output_dtypes.<locals>.copy_and_multiplyˆ   sE   € õ ˜1œ6‘]”]ð "ð "�Ø˜”t��!‘Ø˜”t˜c‘z��!‘�ð"ð "r   rM   r,   r|   r†   )	r	   rD   r5   r6   r   rb   r   r9   r:   )r;   r‡   r   r   r   s        r   Útest_multiple_output_dtypesz/TestMultipleOutputs.test_multiple_output_dtypes†   sÎ   € å	�^Ø œKð
)ñ 
)ô 
)ð	"ð 	"ñ
)ô 
)ð	"õ
 ŒI�b¥¤Ð)Ñ)Ô)¨AÑ-ˆÝŒM˜!ÑÔˆÝŒM˜!¥2¤:Ð.Ñ.Ô.ˆØÐ˜!˜Q Ñ"Ô"Ð"Ý
Œ
×"Ò" 1 aÑ(Ô(Ð(Ý
Œ
×"Ò" 1¥r¤z°#¡¤Ñ#6¸Ñ:Ô:Ð:Ð:Ð:r   c                 ó$  — t          d| j        ¬¦  «        d„ ¦   «         }t          j        dt          j        ¬¦  «        }d}|                      t          ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |t          |j	        ¦  «        ¦  «         |                      t          ¦  «        5 } ||||||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |t          |j	        ¦  «        ¦  «         d S )Nz(m),(m)->(m),(m)rC   c                 ó   — d S rw   r   )r!   r"   ÚzÚws       r   Úfz@TestMultipleOutputs.test_incorrect_number_of_pos_args.<locals>.f—   ó   € àˆDr   r.   r,   z"Too few arguments for function 'f')
r	   rD   r5   r6   r   ÚassertRaisesÚ	TypeErrorÚassertInÚstrÚ	exception)r;   r�   ÚarrÚmsgÚtes        r   Ú!test_incorrect_number_of_pos_argsz5TestMultipleOutputs.test_incorrect_number_of_pos_args–   s€  € Ý	Ð'°´Ð	<Ñ	<Ô	<ð	ð 	ñ 
=Ô	<ð	õ Œi˜¥¤Ð*Ñ*Ô*ˆð 3ˆØ×Ò�yÑ)Ô)ð 	¨RØˆAˆc‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�c�3˜rœ|Ñ,Ô,Ñ-Ô-Ð-ð ×Ò�yÑ)Ô)ð 	'¨RØˆAˆc�3˜˜S #Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'à�Š�c�3˜rœ|Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-s$   ÁA4Á4A8Á;A8ÃCÃC!Ã$C!N)rn   rm   ro   rD   r~   rƒ   rˆ   r—   r   r   r   rs   rs   d   sU   € € € € € Ø€Fð)ð )ð )ð-ð -ð -ð ;ð ;ð ;ð .ð .ð .ð .ð .r   rs   c                   ó   — e Zd ZdZdZdS )ÚTestGUFuncParallelFÚparallelN©rn   rm   ro   Ú_numba_parallel_test_rD   r   r   r   r™   r™   ©   ó   € € € € € Ø!ÐØ€F€F€Fr   r™   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestDynamicGUFuncr'   c                 ó–  — d„ }t          t          d| j        d¬¦  «        }d}t          j        |dz  dz  t          j        ¬¦  «                             |dd¦  «        }t          j        |dz  d	z  t          j        ¬¦  «                             |dd	¦  «        }t          j        |dz  d	z  t          j        ¬¦  «                             |dd	¦  «        } |||||¦  «         t          j        |dz  dz  t          j        ¬¦  «                             |dd¦  «        }t          j        |dz  d	z  t          j        ¬¦  «                             |dd	¦  «        }t          j        |dz  d	z  t          j        ¬¦  «                             |dd	¦  «        }	 |||||	¦  «         |                      t          |j
        ¦  «        d¦  «         d S )
Nc                 ó�   — t          j        ||¦  «        } | |||¦  «         t           j                             ||dd¬¦  «         d S )Nr/   r0   r1   )r5   r8   r9   r:   )r<   r   r   r   r>   s        r   r?   zBTestDynamicGUFunc.test_dynamic_matmul.<locals>.check_matmul_gufunc³   sG   € Ý”9˜Q ‘?”?ˆDØˆF�1�a˜‰OŒOˆOÝŒJ×&Ò& q¨$°TÀÐ&ÑEÔEÐEÐEÐEr   rB   T©rD   Ú
is_dynamicrM   r*   r+   r,   r.   )r   r   rD   r5   r6   r   r7   r   rl   ÚlenÚtypes)
r;   r?   r<   r=   ÚAi64ÚBi64ÚCi64r   r   r   s
             r   Útest_dynamic_matmulz%TestDynamicGUFunc.test_dynamic_matmul±   s¾  € ð	Fð 	Fð 	Fõ
 �ZÐ)=Ø$(¤K¸DðBñ Bô Bˆàˆ	ÝŒy˜ Q™¨Ñ*µ"´(Ð;Ñ;Ô;×CÒCÀIÈqÐRSÑTÔTˆÝŒy˜ Q™¨Ñ*µ"´(Ð;Ñ;Ô;×CÒCÀIÈqÐRSÑTÔTˆÝŒy˜ Q™¨Ñ*µ"´(Ð;Ñ;Ô;×CÒCÀIÈqÐRSÑTÔTˆØÐ˜F D¨$°Ñ5Ô5Ð5åŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆØÐ˜F A q¨!Ñ,Ô,Ð,à×Ò�˜Vœ\Ñ*Ô*¨AÑ.Ô.Ð.Ð.Ð.r   c                 óž   — d„ }t          t          d| j        d¬¦  «        }t          j        dt          j        ¬¦  «        } |||¦  «         d S )Nc                 ó<  — t          j        d|j        ¬¦  «        }t          j        d|j        ¬¦  «        } | ||||¦  «          | ||||¬¦  «         ||z  |z   }t           j                             ||¦  «         t           j                             ||¦  «         d S )NrM   r,   ©r#   )r5   Úzerosr-   r9   rO   )r<   r!   r#   rd   Úgoldens        r   Úcheck_ufunc_outputzETestDynamicGUFunc.test_dynamic_ufunc_like.<locals>.check_ufunc_outputÊ   s    € Ý”(˜2 Q¤WÐ-Ñ-Ô-ˆCÝ”X˜b¨¬Ð0Ñ0Ô0ˆFØˆF�1�a˜˜CÑ Ô Ð ØˆF�1�a˜ Ð'Ñ'Ô'Ð'Ø˜‘U˜Q‘YˆFÝŒJ×#Ò# C¨Ñ0Ô0Ð0ÝŒJ×#Ò# F¨FÑ3Ô3Ð3Ð3Ð3r   rL   Tr¢   rM   r,   )r   r$   rD   r5   r6   rN   )r;   r¯   r<   r!   s       r   Útest_dynamic_ufunc_likez)TestDynamicGUFunc.test_dynamic_ufunc_likeÈ   sb   € ð	4ð 	4ð 	4õ �TÐ#5¸d¼kØ(,ð.ñ .ô .ˆåŒI�b¥¤Ð(Ñ(Ô(ˆØÐ˜6 1Ñ%Ô%Ð%Ð%Ð%r   c                 ó^  — t          d| j        d¬¦  «        d„ ¦   «         }|                      |j        ¦  «         t	          j        dt          j        ¬¦  «                             dd¦  «        }t	          j        dt          j        ¬¦  «        } |||¦  «         t          |j
        d	         ¦  «        D ]6}|                      ||         ||                              ¦   «         ¦  «         Œ7d
}|                      t          |¦  «        5   ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )úw
        Note that scalar output is a 0-dimension array that acts as
        a pointer to the output location.
        ú(n)->()T©rD   Únopythonc                 ód   — d}t          | j        d         ¦  «        D ]}|| |         z  }Œ||d<   d S ©Ng        r   r   rT   ©Úinpr#   Útmpr   s       r   Úsum_rowz=TestDynamicGUFunc.test_dynamic_scalar_output.<locals>.sum_rowâ   s@   € àˆCÝ˜3œ9 Qœ<Ñ(Ô(ð ð �Ø�s˜1”v‘��ØˆC�‰GˆGˆGr   é0u  r,   é'  é   r   z)Too few arguments for function 'sum_row'.N)r	   rD   Ú
assertTruer£   r5   r6   r   r7   r­   r   r   rl   ÚsumÚassertRaisesRegexr�   )r;   r»   r¹   r#   r   r•   s         r   Útest_dynamic_scalar_outputz,TestDynamicGUFunc.test_dynamic_scalar_outputÜ   si  € õ 
�Y t¤{¸TÐ	BÑ	BÔ	Bð	ð 	ñ 
CÔ	Bð	ð 	�Š˜Ô*Ñ+Ô+Ð+ÝŒi˜¥R¤XÐ.Ñ.Ô.×6Ò6°u¸aÑ@Ô@ˆÝŒh�u¥B¤HÐ-Ñ-Ô-ˆØˆ��SÑÔÐõ �s”y ”|Ñ$Ô$ð 	3ð 	3ˆAØ×Ò˜S œV S¨¤V§Z¢Z¡\¤\Ñ2Ô2Ð2Ð2à9ˆØ×#Ò#¥I¨sÑ3Ô3ð 	ð 	ØˆG�C‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ä	D"Ä"D&Ä)D&c                 ó’  — t          d¦  «        d„ ¦   «         }t          j        d¦  «        }t          j        |d¬¦  «        }t          j        |¦  «        } |||d¬¦  «         t          j                             ||¦  «         t          j        |¦  «        } |||d¬¦  «         t          j                             ||¦  «         d S )NrR   c                 ód   — d}t          | j        d         ¦  «        D ]}|| |         z  }|||<   Œd S r   rT   rU   s       r   rX   z.TestDynamicGUFunc.test_axis.<locals>.my_cumsumü   rY   r   rZ   r   r]   r_   )r	   r5   r`   ra   rb   r9   rO   )r;   rX   r!   rc   r"   rd   s         r   re   zTestDynamicGUFunc.test_axisú   sË   € å	�ZÑ	 Ô	 ð	ð 	ñ 
!Ô	 ð	õ ŒG�HÑÔˆÝ”9˜Q QÐ'Ñ'Ô'ˆåŒM˜(Ñ#Ô#ˆØˆ	�!�Q˜QÐÑÔÐÝ
Œ
×Ò  8Ñ,Ô,Ð,å”˜qÑ!Ô!ˆØˆ	�!˜ aÐ(Ñ(Ô(Ð(Ý
Œ
×Ò ¨Ñ1Ô1Ð1Ð1Ð1r   c                 ó  — t          d¦  «        d„ ¦   «         }g d¢}|D ],}t          ||¦  «        }|                      |d|›d�¦  «         Œ-t          j        g d¢¦  «        }t          j        g d¢¦  «        } |||¦  «         |                      |t          j        g d¢¦  «        ¦  «         |                      |j        d¦  «         |                      t          ¦  «        5 }| 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d	¦  «         |                      t          ¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d	¦  «         |                      t          ¦  «        5 }|                     |d
dg¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d	¦  «         |                      t          ¦  «        5 }|                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )NrR   c                 ód   — d}t          | j        d         ¦  «        D ]}|| |         z  }|||<   Œd S r   rT   rU   s       r   r<   z8TestDynamicGUFunc.test_gufunc_attributes.<locals>.gufunc  rY   r   )Ú	signatureÚ
accumulateÚatÚouterÚreduceÚreduceatzdynamic gufunc not exporting "ú"©r|   r*   r¾   r+   ©r   r   r   r   ©r|   r¾   é   rM   z-Reduction not defined on ufunc with signaturer   r*   z?method outer is not allowed in ufunc with non-trivial signature)r	   Úhasattrr¿   r5   ÚarrayÚassertPreciseEqualrl   rÇ   r�   ÚRuntimeErrorrÈ   r’   r“   rË   rÌ   r�   rÊ   )r;   r<   ÚattrsÚattrÚcontainsr    rV   Úraisess           r   Útest_gufunc_attributesz(TestDynamicGUFunc.test_gufunc_attributes  s^  € Ý	�ZÑ	 Ô	 ð	ð 	ñ 
!Ô	 ð	ð QÐPÐPˆØð 	Uð 	UˆDÝ˜v tÑ,Ô,ˆHØ�OŠO˜H˜HÈTÈTÈTÐ&SÑTÔTÐTÐTåŒH�\�\�\Ñ"Ô"ˆÝŒh�|�|�|Ñ$Ô$ˆØˆˆq�#‰ŒˆØ×Ò ¥R¤X¨m¨m¨mÑ%<Ô%<Ñ=Ô=Ð=ð
 	×Ò˜Ô)¨:Ñ6Ô6Ð6à×Ò�|Ñ,Ô,ð 	!°Ø×Ò˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à×Ò�˜VÔ-Ñ.Ô.Ð0_Ñ`Ô`Ð`à×Ò�|Ñ,Ô,ð 	°Ø�MŠM˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�˜VÔ-Ñ.Ô.Ð0_Ñ`Ô`Ð`à×Ò�|Ñ,Ô,ð 	'°Ø�OŠO˜A  1˜vÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'à×Ò�˜VÔ-Ñ.Ô.Ð0_Ñ`Ô`Ð`à×Ò�yÑ)Ô)ð 	¨VØ�LŠL˜˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�˜VÔ-Ñ.Ô.Ð0qÑrÔrÐrÐrÐrsH   Ã#DÄD	ÄD	ÅE4Å4E8Å;E8ÇG&Ç&G*Ç-G*È3IÉIÉIc                 óF  — t          d¦  «        d„ ¦   «         }|                      |j        ¦  «         t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        } ||||¦  «         |                      |t          j        g d¢¦  «        ¦  «         |                      |j        ¦  «         |                      |                     |¦  «        d¦  «         |                      |                     |¦  «        t          j        g d¢¦  «        ¦  «         |                      | 	                    d	d
gd
dg¦  «        t          j        d
dgddgg¦  «        ¦  «         |                      | 
                    |d	dg¦  «        t          j        ddg¦  «        ¦  «         t          j        g d¢¦  «        }t          j        d
dg¦  «        }|                     |d	d
g|¦  «         |                      |t          j        g d¢¦  «        ¦  «         d S )Nz	(),()->()c                 ó   — | |z   |d<   d S r   r   ©r!   r"   rV   s      r   rE   z6TestDynamicGUFunc.test_gufunc_attributes2.<locals>.add7  s   € à˜‘UˆC�‰FˆFˆFr   rÎ   )r+   r¾   r*   r|   rÏ   )r.   r.   r.   r.   rM   rÐ   r   r|   r*   r¾   é   )r*   r+   r¾   r+   )r	   ÚassertIsNonerÇ   r5   rÓ   rÔ   rl   rË   rÈ   rÊ   rÌ   rÉ   )r;   rE   r    ÚbrV   r!   r"   s          r   Útest_gufunc_attributes2z)TestDynamicGUFunc.test_gufunc_attributes26  sö  € Ý	�[Ñ	!Ô	!ð	ð 	ñ 
"Ô	!ð	ð 	×Ò˜#œ-Ñ(Ô(Ð(åŒH�\�\�\Ñ"Ô"ˆÝŒH�\�\�\Ñ"Ô"ˆÝŒh�|�|�|Ñ$Ô$ˆØˆˆAˆq�#‰ŒˆØ×Ò ¥R¤X¨l¨l¨lÑ%;Ô%;Ñ<Ô<Ð<ð 	×Ò˜#œ-Ñ(Ô(Ð(Ø×Ò˜Ÿš A™œ¨Ñ+Ô+Ð+Ø×Ò §¢¨qÑ 1Ô 1µ2´8¸M¸M¸MÑ3JÔ3JÑKÔKÐKØ×Ò §	¢	¨1¨a¨&°1°a°&Ñ 9Ô 9½2¼8ÀaÈÀVÈaÐQRÈVÐDTÑ;UÔ;UÑVÔVÐVØ×Ò §¢¨Q°°A°Ñ 7Ô 7½¼À1ÀaÀ&Ñ9IÔ9IÑJÔJÐJåŒH�\�\�\Ñ"Ô"ˆÝŒH�a˜�VÑÔˆØ�Šˆq�1�a�&˜!ÑÔÐØ×Ò ¥2¤8¨L¨L¨LÑ#9Ô#9Ñ:Ô:Ð:Ð:Ð:r   N)
rn   rm   ro   rD   r©   r°   rÂ   re   rÚ   rá   r   r   r   rŸ   rŸ   ®   sw   € € € € € Ø€Fð/ð /ð /ð.&ð &ð &ð(ð ð ð<2ð 2ð 2ð(&sð &sð &sðP;ð ;ð ;ð ;ð ;r   rŸ   c                   ó4   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestGUVectorizeScalarz<
    Nothing keeps user from out-of-bound memory access
    r'   c                 ój  — t          dgd| j        d¬¦  «        d„ ¦   «         }t          j        dt          j        ¬¦  «                             dd	¦  «        } ||¦  «        }t          |j        d
         ¦  «        D ]6}|                      ||         ||          	                    ¦   «         ¦  «         Œ7dS )r²   zvoid(int32[:], int32[:])r³   Tr´   c                 ód   — d}t          | j        d         ¦  «        D ]}|| |         z  }Œ||d<   d S r·   rT   r¸   s       r   r»   z9TestGUVectorizeScalar.test_scalar_output.<locals>.sum_row]  sB   € ð ˆCÝ˜3œ9 Qœ<Ñ(Ô(ð ð �Ø�s˜1”v‘��ØˆC�‰GˆGˆGr   r¼   r,   r½   r¾   r   N)
r	   rD   r5   r6   r   r7   r   r   rl   rÀ   )r;   r»   r¹   r#   r   s        r   Útest_scalar_outputz(TestGUVectorizeScalar.test_scalar_outputW  sÅ   € õ 
Ð0Ð1°9Ø œK°$ð
8ñ 
8ô 
8ð	ð 	ñ
8ô 
8ð	õ Œi˜¥R¤XÐ.Ñ.Ô.×6Ò6°u¸aÑ@Ô@ˆØˆg�c‰lŒlˆõ �s”y ”|Ñ$Ô$ð 	3ð 	3ˆAØ×Ò˜S œV S¨¤V§Z¢Z¡\¤\Ñ2Ô2Ð2Ð2ð	3ð 	3r   c                 óü   — t          dgd| j        d¬¦  «        d„ ¦   «         }t          j        dt          j        ¬¦  «                             dd	¦  «        } ||d
¦  «        }|                      |d
z  |¦  «         d S )Nzint32[:], int32[:], int32[:]rg   Tr´   c                 óh   — t          | j        d         ¦  «        D ]}| |         |d         z  ||<   Œd S r   rT   ©r¹   r   r#   r   s       r   Úfooz4TestGUVectorizeScalar.test_scalar_input.<locals>.foor  sB   € õ ˜3œ9 Qœ<Ñ(Ô(ð 'ð '�Ø˜Qœ ! A¤$™��A‘�ð'ð 'r   r\   r,   rM   r¾   r*   )r	   rD   r5   r6   r   r7   rÔ   )r;   rê   r¹   r#   s       r   Útest_scalar_inputz'TestGUVectorizeScalar.test_scalar_inputp  s•   € å	Ð4Ð5°}Ø œK°$ð
8ñ 
8ô 
8ð	'ð 	'ñ
8ô 
8ð	'õ Œi˜¥b¤hÐ/Ñ/Ô/×7Ò7¸¸AÑ>Ô>ˆàˆc�#�q‰kŒkˆð 	×Ò  a¡¨Ñ-Ô-Ð-Ð-Ð-r   c                 óÀ  — d„ } t          dgd| j        ¬¦  «        |¦  «        }t          j        d¦  «                             t          j        ¦  «        } ||d¦  «        }t          j        |¦  «        } ||d|¦  «         t          j                             ||¦  «         t          j        d¦  «                             t          j        ¦  «         	                    dd¦  «        } ||d¦  «        }t          j        |¦  «        }t          |j        d         ¦  «        D ]} |||         d||         ¦  «         Œt          j                             ||¦  «         d S )	Nc                 óV   — t          | j        ¦  «        D ]}|| |         dz   z  ||<   Œd S )Nr|   rx   ré   s       r   ÚpyfunczATestGUVectorizeScalar.test_scalar_input_core_type.<locals>.pyfunc€  s;   € Ý˜3œ8‘_”_ð *ð *�Ø˜c !œf q™jÑ)��A‘�ð*ð *r   úint32[:], int32, int32[:]rg   rC   rM   r*   r[   r   )r	   rD   r5   r6   Úastyper   rb   r9   rO   r7   r   r   )r;   rî   Ú	my_gufuncr”   Úgotrc   Úaxs          r   Útest_scalar_input_core_typez1TestGUVectorizeScalar.test_scalar_input_core_type  sY  € ð	*ð 	*ð 	*ð4•KÐ!<Ð =Ø -Ø'+¤{ð4ñ 4ô 4à4:ñ<ô <ˆ	õ
 Œi˜‰mŒm×"Ò"¥2¤8Ñ,Ô,ˆØˆi˜˜QÑÔˆå”= Ñ%Ô%ˆØˆˆs�A�xÑ Ô Ð å
Œ
×Ò  XÑ.Ô.Ð.õ Œi˜‰mŒm×"Ò"¥2¤8Ñ,Ô,×4Ò4°R¸Ñ;Ô;ˆØˆi˜˜QÑÔˆå”= Ñ%Ô%ˆÝ˜œ qÔ)Ñ*Ô*ð 	-ð 	-ˆBØˆF�3�r”7˜A˜x¨œ|Ñ,Ô,Ð,Ð,å
Œ
×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 óü   — |                       t          ¦  «        5 }t          dgd| j        ¬¦  «        d„ ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nrï   z(n),(n)->(n)rC   c                 ó   — d S rw   r   )r    rà   Úcs      r   rî   zGTestGUVectorizeScalar.test_scalar_input_core_type_error.<locals>.pyfunc�  ó	   € ð �r   z2scalar type int32 given for non scalar argument #2©r�   r�   r	   rD   rl   r’   r“   ©r;   rÙ   rî   s      r   Ú!test_scalar_input_core_type_errorz7TestGUVectorizeScalar.test_scalar_input_core_type_error›  sÕ   € Ø×Ò�yÑ)Ô)ð 	¨VÝÐ5Ð6¸Ø $¤ð-ñ -ô -ðð ñ-ô -ðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	×ÒÐMÝ˜VÔ-Ñ.Ô.ñ	0ô 	0ð 	0ð 	0ð 	0ó   ›"A	Á	AÁAc                 óü   — |                       t          ¦  «        5 }t          dgd| j        ¬¦  «        d„ ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nzint32[:], int32[:]z
(m,n)->(n)rC   c                 ó   — d S rw   r   )r    rà   s     r   rî   z8TestGUVectorizeScalar.test_ndim_mismatch.<locals>.pyfunc¦  rø   r   z,type and shape signature mismatch for arg #1rù   rú   s      r   Útest_ndim_mismatchz(TestGUVectorizeScalar.test_ndim_mismatch¤  sÕ   € Ø×Ò�yÑ)Ô)ð 	¨VÝÐ.Ð/°Ø $¤ð-ñ -ô -ðð ñ-ô -ðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	×ÒÐGÝ˜VÔ-Ñ.Ô.ñ	0ô 	0ð 	0ð 	0ð 	0rü   N)
rn   rm   ro   rp   rD   ræ   rë   rô   rû   rÿ   r   r   r   rã   rã   Q  sp   € € € € € ðð ð €Fð3ð 3ð 3ð2.ð .ð .ð/ð /ð /ð80ð 0ð 0ð0ð 0ð 0ð 0ð 0r   rã   c                   ó   — e Zd ZdZdZdS )ÚTestGUVectorizeScalarParallelFrš   Nr›   r   r   r   r  r  ®  r�   r   r  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestGUVectorizePicklingc                 óö  — t          dgd¦  «        d„ ¦   «         }t          j        |¦  «        }t          j        |¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        j	        |j        j	        ¦  «         |  
                    |j        ¦  «         |                     ¦   «          |  
                    |j        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         t          j        d¦  «        }|                       ||¦  «         ||¦  «        ¦  «         dS )zNon-dynamic gufunc.
        zf8,f8[:]ú()->()c                 ó   — | dz  |d d …<   d S r�   r   ©r!   r#   s     r   ÚdoublezFTestGUVectorizePickling.test_pickle_gufunc_non_dyanmic.<locals>.double·  ó   € à˜‘UˆC���‰FˆFˆFr   ç      à?rM   N)r	   ÚpickleÚdumpsÚloadsrl   Ú_frozenÚidentityr£   Úgufunc_builderÚ_sigsr¿   Údisable_compilerÔ   r5   r6   )r;   r  ÚserÚclonedr”   s        r   Útest_pickle_gufunc_non_dyanmicz6TestGUVectorizePickling.test_pickle_gufunc_non_dyanmic´  sb  € õ 
�j�\ 8Ñ	,Ô	,ð	ð 	ñ 
-Ô	,ð	õ Œl˜6Ñ"Ô"ˆÝ”˜cÑ"Ô"ˆð 	×Ò˜œ¨¬Ñ8Ô8Ð8Ø×Ò˜œ¨&¬/Ñ:Ô:Ð:Ø×Ò˜Ô*¨FÔ,=Ñ>Ô>Ð>Ø×Ò˜Ô.Ô4ØÔ.Ô4ñ	6ô 	6ð 	6ð 	�Š˜œÑ'Ô'Ð'à×ÒÑ Ô Ð Ø�Š˜œÑ'Ô'Ð'ð 	×Ò   s¡¤¨V¨V°C©[¬[Ñ9Ô9Ð9åŒi˜‰mŒmˆØ×Ò   s¡¤¨V¨V°C©[¬[Ñ9Ô9Ð9Ð9Ð9r   c                 óZ  — t          dd¬¦  «        d„ ¦   «         }t          j        |¦  «        }t          j        |¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        j	        |j        j	        ¦  «         |  
                    |j        ¦  «         t          j        d¦  «        }t          j        d¦  «        } |d|¬¦  «          |d|¬¦  «         |                      ||¦  «         t          j        d¦  «        }t          j        |¦  «        }t          j        |¦  «        } |||¬¦  «          |||¬¦  «         |                      ||¦  «         dS )	z:Dynamic gufunc w/o prepopulating before pickling.
        r  r|   ©r  c                 ó   — | dz  |d d …<   d S r�   r   r  s     r   r  zLTestGUVectorizePickling.test_pickle_gufunc_dyanmic_null_init.<locals>.doubleÔ  r	  r   r
  r¬   rM   N)r	   r  r  r  rl   r  r  r£   r  r  ÚassertFalser5   r­   rÔ   r6   rb   )r;   r  r  r  Úexpectrò   r”   s          r   Ú$test_pickle_gufunc_dyanmic_null_initz<TestGUVectorizePickling.test_pickle_gufunc_dyanmic_null_initÑ  s«  € õ 
�X¨Ð	*Ñ	*Ô	*ð	ð 	ñ 
+Ô	*ð	õ Œl˜6Ñ"Ô"ˆÝ”˜cÑ"Ô"ˆð 	×Ò˜œ¨¬Ñ8Ô8Ð8Ø×Ò˜œ¨&¬/Ñ:Ô:Ð:Ø×Ò˜Ô*¨FÔ,=Ñ>Ô>Ð>Ø×Ò˜Ô.Ô4ØÔ.Ô4ñ	6ô 	6ð 	6ð 	×Ò˜œÑ(Ô(Ð(õ ”˜!‘”ˆÝŒh�q‰kŒkˆØˆˆs˜ÐÑÔÐØˆˆs˜ÐÑÔÐØ×Ò ¨Ñ,Ô,Ð,åŒi˜‰mŒmˆÝ”˜sÑ#Ô#ˆÝŒm˜CÑ Ô ˆØˆˆs˜ÐÑÔÐØˆˆs˜ÐÑÔÐØ×Ò ¨Ñ,Ô,Ð,Ð,Ð,r   c                 óŠ  — t          dd¬¦  «        d„ ¦   «         }t          j        d¦  «        }t          j        d¦  «        } |d|¬¦  «         t          j        d¦  «        }t          j        |¦  «        }t          j        |¦  «        } |||¬¦  «         t          j        |¦  «        }t          j        |¦  «        }|                      |j	        |j	        ¦  «         |                      |j
        |j
        ¦  «         |                      |j        |j        ¦  «         |                      |j        j        |j        j        ¦  «         |                      |j	        ¦  «         |                     ¦   «          |                      |j	        ¦  «         t          j        d¦  «        }t          j        d¦  «        } |d|¬¦  «          |d|¬¦  «         |                      ||¦  «         t          j        |¦  «        }t          j        |¦  «        } |||¬¦  «          |||¬¦  «         |                      ||¦  «         dS )	zªDynamic gufunc prepopulated before pickling.

        Once unpickled, we disable compilation to verify that the gufunc
        compilation state is carried over.
        r  r|   r  c                 ó   — | dz  |d d …<   d S r�   r   r  s     r   r  zNTestGUVectorizePickling.test_pickle_gufunc_dynamic_initialized.<locals>.doubleù  r	  r   r
  r¬   rM   N)r	   r5   r­   r6   rb   r  r  r  rl   r  r  r£   r  r  r  r  r¿   rÔ   )r;   r  r  rò   r”   r  r  s          r   Ú&test_pickle_gufunc_dynamic_initializedz>TestGUVectorizePickling.test_pickle_gufunc_dynamic_initializedó  s5  € õ 
�X¨Ð	*Ñ	*Ô	*ð	ð 	ñ 
+Ô	*ð	õ ”˜!‘”ˆÝŒh�q‰kŒkˆØˆˆs˜ÐÑÔÐåŒi˜‰mŒmˆÝ”˜sÑ#Ô#ˆÝŒm˜CÑ Ô ˆØˆˆs˜ÐÑÔÐõ Œl˜6Ñ"Ô"ˆÝ”˜cÑ"Ô"ˆð 	×Ò˜œ¨¬Ñ8Ô8Ð8Ø×Ò˜œ¨&¬/Ñ:Ô:Ð:Ø×Ò˜Ô*¨FÔ,=Ñ>Ô>Ð>Ø×Ò˜Ô.Ô4ØÔ.Ô4ñ	6ô 	6ð 	6ð 	×Ò˜œÑ(Ô(Ð(ð 	×ÒÑ Ô Ð Ø�Š˜œÑ'Ô'Ð'å”˜!‘”ˆÝŒh�q‰kŒkˆØˆˆs˜ÐÑÔÐØˆˆs˜ÐÑÔÐØ×Ò ¨Ñ,Ô,Ð,å”˜sÑ#Ô#ˆÝŒm˜CÑ Ô ˆØˆˆs˜ÐÑÔÐØˆˆs˜ÐÑÔÐØ×Ò ¨Ñ,Ô,Ð,Ð,Ð,r   N)rn   rm   ro   r  r  r  r   r   r   r  r  ³  sB   € € € € € ð:ð :ð :ð: -ð  -ð  -ðD/-ð /-ð /-ð /-ð /-r   r  c                   ó’   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zej	        d„ ¦   «         Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestGUVectorizeJitr'   c                 ó0  ‡— t          d¬¦  «        ˆfd„¦   «         }t          j        dd¬¦  «                             ddd	¦  «        }t          j        d
¦  «        }t          j        |¦  «        } ||||¦  «         |                      |||z   ¦  «         d S )NT©rµ   c                 ó"   •—  ‰| ||¦  «         d S rw   r   ©r!   r"   rV   r<   s      €r   Újit_addz4TestGUVectorizeJit.check_add_gufunc.<locals>.jit_add)  ó   ø€ àˆF�1�a˜ÑÔÐÐÐr   é(   Úi8r,   r+   r*   r.   éd   )r   r5   r6   r7   r   rb   rÔ   )r;   r<   r%  r!   r"   rV   s    `    r   Úcheck_add_gufuncz#TestGUVectorizeJit.check_add_gufunc(  sª   ø€ Ý	�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ ŒI�b Ð%Ñ%Ô%×-Ò-¨a°°AÑ6Ô6ˆÝŒH�S‰MŒMˆÝŒm˜AÑÔˆØˆ��1�cÑÔÐØ×Ò  Q¨¡UÑ+Ô+Ð+Ð+Ð+r   c                 óp   — t          dd| j        ¬¦  «        d„ ¦   «         }|                      |¦  «         d S )Núint64[:], int64, int64[:]rg   rC   c                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   Œd S r   rT   rj   s       r   rE   z/TestGUVectorizeJit.test_add_static.<locals>.add4  rk   r   ©r	   rD   r*  ©r;   rE   s     r   Útest_add_staticz"TestGUVectorizeJit.test_add_static3  sS   € Ý	Ð0°-Ø œKð
)ñ 
)ô 
)ð	"ð 	"ñ
)ô 
)ð	"ð 	×Ò˜cÑ"Ô"Ð"Ð"Ð"r   c                 óp   — t          dd| j        ¬¦  «        d„ ¦   «         }|                      |¦  «         d S )Nr,  rg   rC   c                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   Œd S r   rT   rj   s       r   rE   z9TestGUVectorizeJit.test_add_static_cast_args.<locals>.add>  rk   r   r.  r/  s     r   Útest_add_static_cast_argsz,TestGUVectorizeJit.test_add_static_cast_args<  sS   € å	Ð0°-Ø œKð
)ñ 
)ô 
)ð	"ð 	"ñ
)ô 
)ð	"ð 	×Ò˜cÑ"Ô"Ð"Ð"Ð"r   c                 ón   — t          d| j        ¬¦  «        d„ ¦   «         }|                      |¦  «         d S )Nrg   rC   c                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   Œd S r   rT   rj   s       r   rE   z0TestGUVectorizeJit.test_add_dynamic.<locals>.addG  ó<   € å˜1œ7 1œ:Ñ&Ô&ð "ð "�Ø˜1œ ™��A‘�ð"ð "r   r.  r/  s     r   Útest_add_dynamicz#TestGUVectorizeJit.test_add_dynamicF  sG   € Ý	�]¨4¬;Ð	7Ñ	7Ô	7ð	"ð 	"ñ 
8Ô	7ð	"ð 	×Ò˜cÑ"Ô"Ð"Ð"Ð"r   c                 óp   — t          d| j        d¬¦  «        d„ ¦   «         }|                      |¦  «         d S )Nrg   T)rD   Úforceobjc                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   Œd S r   rT   rj   s       r   rE   z0TestGUVectorizeJit.test_object_mode.<locals>.addP  r6  r   r.  r/  s     r   Útest_object_modez#TestGUVectorizeJit.test_object_modeN  sJ   € å	�]¨4¬;ÀÐ	FÑ	FÔ	Fð	"ð 	"ñ 
GÔ	Fð	"ð 	×Ò˜cÑ"Ô"Ð"Ð"Ð"r   c                 óö  — d}t          j        |dz  dz  t           j        ¬¦  «                             |dd¦  «        }t          j        |dz  dz  t           j        ¬¦  «                             |dd¦  «        }t          j        |dz  dz  t           j        ¬¦  «                             |dd¦  «        } ||||¦  «         t          j        ||¦  «        }t           j                             ||dd¬¦  «         d S r)   r4   )r;   Újit_funcr=   r   r   r   r>   s          r   Úcheck_matmulzTestGUVectorizeJit.check_matmulW  så   € Øˆ	ÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆÝŒI�i !‘m aÑ'­r¬zÐ:Ñ:Ô:×BÒBÀ9ÈaÐQRÑSÔSˆàˆ��A�qÑÔÐÝŒy˜˜A‰Œˆå
Œ
×"Ò" 1 d°¸DÐ"ÑAÔAÐAÐAÐAr   c                 ó°   ‡—  t          d| j        ¬¦  «        t          ¦  «        Št          d¬¦  «        ˆfd„¦   «         }|                      |¦  «         d S )NrB   rC   Tr"  c                 ó   •—  ‰| ||¦  «        S rw   r   )r   r   r   r<   s      €r   Ú
matmul_jitz<TestGUVectorizeJit.test_njit_matmul_call.<locals>.matmul_jitg  s   ø€ à�6˜!˜Q ‘?”?Ð"r   )r	   rD   r   r   r>  )r;   rA  r<   s     @r   Útest_njit_matmul_callz(TestGUVectorizeJit.test_njit_matmul_callb  s}   ø€ ð1•Ð1Ø$(¤Kð1ñ 1ô 1Ý1;ñ=ô =ˆõ 
�dÐ	Ñ	Ô	ð	#ð 	#ð 	#ð 	#ñ 
Ô	ð	#ð 	×Ò˜*Ñ%Ô%Ð%Ð%Ð%r   c                 ó4  ‡— t          t          d| j        d¬¦  «        Št          d¬¦  «        ˆfd„¦   «         }t	          j        dt          j        ¬¦  «        }t	          j        |¦  «        } |||||¦  «         |                      |||z  |z   ¦  «         d S )Nz(),(),() -> ()Tr¢   r"  c                 ó$   •—  ‰| |||¦  «         d S rw   r   )r    r!   r"   r#   r<   s       €r   Úaxpy_jitz.TestGUVectorizeJit.test_axpy.<locals>.axpy_jitq  s   ø€ àˆF�1�a˜˜CÑ Ô Ð Ð Ð r   rM   r,   )	r   r$   rD   r   r5   r6   rN   rb   rÔ   )r;   rE  r!   r#   r<   s       @r   Ú	test_axpyzTestGUVectorizeJit.test_axpym  sµ   ø€ Ý�TÐ#3¸D¼KØ(,ð.ñ .ô .ˆõ 
�dÐ	Ñ	Ô	ð	!ð 	!ð 	!ð 	!ñ 
Ô	ð	!õ ŒI�b¥¤Ð(Ñ(Ô(ˆÝŒm˜AÑÔˆØˆ��A�q˜#ÑÔÐØ×Ò  Q¨¡U¨Q¡YÑ/Ô/Ð/Ð/Ð/r   c                 ó¢  ‡— t          d¦  «        d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }t          j        dd¬¦  «                             d	d
¦  «        }t          j        dd¬¦  «        }t          j        d	d¬¦  «        } ||||¦  «         t          j        |¦  «        } ‰|||¦  «         |                      ||¦  «         d S )Nz(n),(m) -> ()c                 ó^   — |                       ¦   «         |                      ¦   «         z   |d<   d S r   )rÀ   rÝ   s      r   r<   z5TestGUVectorizeJit.test_output_scalar.<locals>.gufunc|  s$   € à—U’U‘W”W˜qŸušu™wœwÑ&ˆC�‰FˆFˆFr   Tr"  c                 ó"   •—  ‰| ||¦  «         d S rw   r   r$  s      €r   r=  z7TestGUVectorizeJit.test_output_scalar.<locals>.jit_func€  r&  r   r'  r(  r,   r+   rM   r[   )r	   r   r5   r6   r7   r­   rb   rÔ   )r;   r=  r!   r"   rV   rc   r<   s         @r   Útest_output_scalarz%TestGUVectorizeJit.test_output_scalarz  s÷   ø€ å	�_Ñ	%Ô	%ð	'ð 	'ñ 
&Ô	%ð	'õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ ŒI�b Ð%Ñ%Ô%×-Ò-¨a°Ñ4Ô4ˆÝŒI�b Ð%Ñ%Ô%ˆÝŒh�q Ð%Ñ%Ô%ˆØˆ��A�sÑÔÐÝ”= Ñ%Ô%ˆØˆˆq�!�XÑÔÐØ×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 óp  ‡— t          d¦  «        d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }t          j        dd¬¦  «                             d	d
d¦  «        }t          j        |¦  «        } |||¦  «         t          j        |¦  «        } ‰||¦  «         |                      ||¦  «         d S )Nz() -> ()c                 ó   — | dz   |d<   d S )Nr)  r   r   )r!   rV   s     r   r<   z4TestGUVectorizeJit.test_input_scalar.<locals>.gufuncŽ  s   € à˜‘WˆC�‰FˆFˆFr   Tr"  c                 ó    •—  ‰| |¦  «         d S rw   r   )r!   rV   r<   s     €r   r=  z6TestGUVectorizeJit.test_input_scalar.<locals>.jit_func’  s   ø€ àˆF�1�c‰NŒNˆNˆNˆNr   r'  r(  r,   r.   r*   r+   )r	   r   r5   r6   r7   rb   rÔ   )r;   r=  r!   rV   rc   r<   s        @r   Útest_input_scalarz$TestGUVectorizeJit.test_input_scalarŒ  sÜ   ø€ å	�ZÑ	 Ô	 ð	ð 	ñ 
!Ô	 ð	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ ŒI�b Ð%Ñ%Ô%×-Ò-¨a°°AÑ6Ô6ˆÝŒm˜AÑÔˆØˆ��CÑÔÐÝ”= Ñ%Ô%ˆØˆˆq�(ÑÔÐØ×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 óì  ‡— d}t          |¦  «        d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }d\  }}t          j        |dz  ¦  «                             ||¦  «        }t          j        |dz  ¦  «                             |||¦  «        }t          j        |¦  «        }t          j        |dz  ¦  «                             ||¦  «        }|                      t          ¦  «        5 }	t          j        ||z  ¦  «        }
 ||
|||¦  «         d d d ¦  «         n# 1 swxY w Y   d	|› d
�}|                      |t          |	j	        ¦  «        ¦  «         |                      t          ¦  «        5 }	t          j        ||z  ¦  «                             ||¦  «        } |||||¦  «         d d d ¦  «         n# 1 swxY w Y   d|› d�}|                      |t          |	j	        ¦  «        ¦  «         |                      t          ¦  «        5 }	t          j
        d¦  «        } |||||¦  «         d d d ¦  «         n# 1 swxY w Y   d|› d�}|                      |t          |	j	        ¦  «        ¦  «         |                      t          ¦  «        5 }	t          j        |¦  «        } |||||¦  «         d d d ¦  «         n# 1 swxY w Y   d|› d
�}|                      |t          |	j	        ¦  «        ¦  «         d S )Nz (n, m), (n, n, n) -> (m), (n, n)c                 ó   — d|d<   d|d<   d S ©Né{   r   iÈ  r   ©r!   r"   rV   r#   s       r   Úbarz9TestGUVectorizeJit.test_gufunc_ndim_mismatch.<locals>.barŸ  ó   € àˆC�‰FØˆC�‰FˆFˆFr   Tr"  c                 ó$   •—  ‰| |||¦  «         d S rw   r   ©r!   r"   rV   r#   rT  s       €r   rê   z9TestGUVectorizeJit.test_gufunc_ndim_mismatch.<locals>.foo¤  ó   ø€ àˆC��1�c˜3ÑÔÐÐÐr   )r*   r¾   r*   r¾   zXbar: Input operand 0 does not have enough dimensions (has 1, gufunc core with signature z requires 2)zXbar: Input operand 1 does not have enough dimensions (has 2, gufunc core with signature z requires 3)zYbar: Output operand 0 does not have enough dimensions (has 0, gufunc core with signature z requires 1)zYbar: Output operand 1 does not have enough dimensions (has 1, gufunc core with signature )r	   r   r5   r6   r7   r�   r
   r‘   r’   r“   rÓ   )r;   rÇ   rê   ÚNÚMr!   r"   rV   r#   rÙ   Úx_r•   Úy_Úres_Úout_rT  s                  @r   Útest_gufunc_ndim_mismatchz,TestGUVectorizeJit.test_gufunc_ndim_mismatch�  s  ø€ Ø6ˆ	Ý	�YÑ	Ô	ð	ð 	ñ 
 Ô	ð	õ 
�dÐ	Ñ	Ô	ð	 ð 	 ð 	 ð 	 ñ 
Ô	ð	 ð ‰ˆˆ1ÝŒI�a˜‘d‰OŒO×#Ò# A qÑ)Ô)ˆÝŒI�a˜‘d‰OŒO×#Ò# A q¨!Ñ,Ô,ˆÝŒi˜‰lŒlˆÝŒi˜˜1™‰oŒo×%Ò% a¨Ñ+Ô+ˆð ×Ò�{Ñ+Ô+ð 	!¨vÝ”˜1˜q™5Ñ!Ô!ˆBØˆC��A�s˜CÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ðHØ09ðHð Hð Hˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1à×Ò�{Ñ+Ô+ð 	!¨vÝ”˜1˜q™5Ñ!Ô!×)Ò)¨!¨QÑ/Ô/ˆBØˆC��2�s˜CÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ðHØ09ðHð Hð Hˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1à×Ò�{Ñ+Ô+ð 	!¨vÝ”8˜A‘;”;ˆDØˆC��1�d˜CÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ðHØ09ðHð Hð Hˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1à×Ò�{Ñ+Ô+ð 	!¨vÝ”9˜Q‘<”<ˆDØˆC��1�c˜4Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ðHØ09ðHð Hð Hˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1sH   Ã,&DÄD"Ä%D"Å1:F7Æ7F;Æ>F;È
#H9È9H=É H=Ê#J;Ê;J?ËJ?c                 óÂ  ‡
— |                       ¦   «          t          d¦  «        d„ ¦   «         Š
t          d¬¦  «        ˆ
fd„¦   «         }d}d}t          j        dd|f¦  «        }t          j        |f¦  «        }t          j        d	¦  «        }|                      t          ¦  «        5 } ‰
|||¦  «         d d d ¦  «         n# 1 swxY w Y   d
}|                      |t          |j
        ¦  «        ¦  «         |                      t          ¦  «        5 }	 ||||¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |	j
        ¦  «        ¦  «         d S )Nú(n),(n) -> ()c                 ó   — d|d<   d S ©NrR  r   r   rÝ   s      r   rT  z>TestGUVectorizeJit.test_mismatch_inner_dimensions.<locals>.barÏ  ó   € àˆC�‰FˆFˆFr   Tr"  c                 ó"   •—  ‰| ||¦  «         d S rw   r   ©r!   r"   rV   rT  s      €r   rê   z>TestGUVectorizeJit.test_mismatch_inner_dimensions.<locals>.fooÓ  ó   ø€ àˆC��1�c‰NŒNˆNˆNˆNr   r*   r¾   r.   ©r.   r¾   zxInput operand 1 has a mismatch in its core dimension 0, with gufunc signature (n),(n) -> () (size 3 is different from 2)ú4Operand has a mismatch in one of its core dimensions©Údisable_leak_checkr	   r   r5   Úemptyr­   r�   Ú
ValueErrorr‘   r’   r“   ©r;   rê   rY  rZ  r!   r"   rV   Ú	np_raisesr•   rÙ   rT  s             @r   Útest_mismatch_inner_dimensionsz1TestGUVectorizeJit.test_mismatch_inner_dimensionsË  sè  ø€ à×ÒÑ!Ô!Ð!å	�_Ñ	%Ô	%ð	ð 	ñ 
&Ô	%ð	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð ˆØˆÝŒH�a˜˜A�YÑÔˆÝŒH�a�T‰NŒNˆÝŒh�vÑÔˆð ×Ò�zÑ*Ô*ð 	¨iØˆC��1�c‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðMˆà�Š�c�3˜yÔ2Ñ3Ô3Ñ4Ô4Ð4à×Ò�zÑ*Ô*ð 	¨fØˆC��1�c‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àEˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1ó$   Â'CÃCÃCÄD*Ä*D.Ä1D.c                 óÂ  ‡
— |                       ¦   «          t          d¦  «        d„ ¦   «         Š
t          d¬¦  «        ˆ
fd„¦   «         }d}d}t          j        dd|f¦  «        }t          j        |f¦  «        }t          j        d	¦  «        }|                      t          ¦  «        5 } ‰
|||¦  «         d d d ¦  «         n# 1 swxY w Y   d
}|                      |t          |j
        ¦  «        ¦  «         |                      t          ¦  «        5 }	 ||||¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |	j
        ¦  «        ¦  «         d S )Nz(n),(m) -> (n)c                 ó   — d|d<   d S rc  r   rÝ   s      r   rT  zKTestGUVectorizeJit.test_mismatch_inner_dimensions_input_output.<locals>.barî  rd  r   Tr"  c                 ó"   •—  ‰| ||¦  «         d S rw   r   rf  s      €r   rê   zKTestGUVectorizeJit.test_mismatch_inner_dimensions_input_output.<locals>.fooò  rg  r   r*   r¾   r.   rh  zzOutput operand 0 has a mismatch in its core dimension 0, with gufunc signature (n),(m) -> (n) (size 3 is different from 2)ri  rj  rn  s             @r   Ú+test_mismatch_inner_dimensions_input_outputz>TestGUVectorizeJit.test_mismatch_inner_dimensions_input_outputé  së  ø€ à×ÒÑ!Ô!Ð!õ 
Ð%Ñ	&Ô	&ð	ð 	ñ 
'Ô	&ð	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð ˆØˆÝŒH�a˜˜A�YÑÔˆÝŒH�a�T‰NŒNˆÝŒh�vÑÔˆð ×Ò�zÑ*Ô*ð 	¨iØˆC��1�c‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðNˆà�Š�c�3˜yÔ2Ñ3Ô3Ñ4Ô4Ð4à×Ò�zÑ*Ô*ð 	¨fØˆC��1�c‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àEˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1rq  c                 óî  ‡— |                       ¦   «          t          d¦  «        d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }d}d}t          j        |f¦  «        }t          j        |f¦  «        }t          j        |f¦  «        }t          j        |f¦  «        }|                      t          ¦  «        5 } ‰||||¦  «         d d d ¦  «         n# 1 swxY w Y   d}	|                      |	t          |j
        ¦  «        ¦  «         |                      t          ¦  «        5 }
 |||||¦  «         d d d ¦  «         n# 1 swxY w Y   d	}	|                      |	t          |
j
        ¦  «        ¦  «         d S )
Nz(n),(m) -> (m),(m)c                 ó   — d|d<   d|d<   d S rQ  r   rS  s       r   rT  zETestGUVectorizeJit.test_mismatch_inner_dimensions_output.<locals>.bar  rU  r   Tr"  c                 ó$   •—  ‰| |||¦  «         d S rw   r   rW  s       €r   rê   zETestGUVectorizeJit.test_mismatch_inner_dimensions_output.<locals>.foo  rX  r   r*   r¾   z~Output operand 0 has a mismatch in its core dimension 0, with gufunc signature (n),(m) -> (m),(m) (size 2 is different from 3)ri  rj  )r;   rê   rY  rZ  r!   r"   rV   r#   ro  r•   rÙ   rT  s              @r   Ú%test_mismatch_inner_dimensions_outputz8TestGUVectorizeJit.test_mismatch_inner_dimensions_output  sü  ø€ à×ÒÑ!Ô!Ð!å	Ð)Ñ	*Ô	*ð	ð 	ñ 
+Ô	*ð	õ 
�dÐ	Ñ	Ô	ð	 ð 	 ð 	 ð 	 ñ 
Ô	ð	 ð ˆØˆÝŒH�a�T‰NŒNˆÝŒH�a�T‰NŒNˆÝŒh˜�t‰nŒnˆÝŒh˜�t‰nŒnˆð ×Ò�zÑ*Ô*ð 	 ¨iØˆC��1�c˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ðRˆà�Š�c�3˜yÔ2Ñ3Ô3Ñ4Ô4Ð4à×Ò�zÑ*Ô*ð 	 ¨fØˆC��1�c˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 àEˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s$   Â;CÃCÃCÄ%E Å EÅEc                 óò  ‡— |                       ¦   «          t          d¦  «        d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }d}t          j        ddd	|f¦  «        }t          j        dd	|f¦  «        }t          j        d
¦  «        }|                      t          ¦  «        5 } ||||¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j
        ¦  «        ¦  «         d S )Nra  c                 ó   — d|d<   d S rc  r   rÝ   s      r   rT  z8TestGUVectorizeJit.test_mismatch_loop_shape.<locals>.bar,  rd  r   Tr"  c                 ó"   •—  ‰| ||¦  «         d S rw   r   rf  s      €r   rê   z8TestGUVectorizeJit.test_mismatch_loop_shape.<locals>.foo0  rg  r   r*   r|   r.   r¾   rh  ú&Loop and array shapes are incompatiblerj  )	r;   rê   rY  r!   r"   rV   rÙ   r•   rT  s	           @r   Útest_mismatch_loop_shapez+TestGUVectorizeJit.test_mismatch_loop_shape(  sK  ø€ à×ÒÑ!Ô!Ð!å	�_Ñ	%Ô	%ð	ð 	ñ 
&Ô	%ð	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð ˆÝŒH�a˜˜A˜q�]Ñ#Ô#ˆÝŒH�a˜˜A�ZÑ Ô ˆÝŒh�vÑÔˆà×Ò�zÑ*Ô*ð 	¨fØˆC��1�c‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à7ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   Â(CÃCÃ	Cc                 ó  ‡
— |                       ¦   «          t          d¦  «        d„ ¦   «         Š
t          ˆ
fd„¦   «         }d}t          j        d|z  ¦  «                             d|f¦  «        }t          j        |¦  «        }t          j        d¦  «        }t          j        d|f¦  «        }|                      t          ¦  «        5 } ‰
||||¦  «         d d d ¦  «         n# 1 swxY w Y   d}|  
                    |t          |j        ¦  «        ¦  «         |                      t          ¦  «        5 }	 |||||¦  «         d d d ¦  «         n# 1 swxY w Y   d	}|  
                    |t          |	j        ¦  «        ¦  «         d S )
Nz(n),(n) -> (), (n)c                 óÄ   — |                       ¦   «         |d<   t          | j        d         ¦  «        D ]-}||xx         | |         |                      ¦   «         z   z  cc<   Œ.d S r   )rÀ   r   r   )r!   r"   rV   r#   r   s        r   r<   z=TestGUVectorizeJit.test_mismatch_loop_shape_2.<locals>.gufuncB  sb   € à—U’U‘W”WˆC�‰FÝ˜1œ7 1œ:Ñ&Ô&ð )ð )�Ø�A��”˜!˜Aœ$ §¢¡¤™.Ñ(��‘�ð)ð )r   c                 ó$   •—  ‰| |||¦  «         d S rw   r   )r!   r"   rV   r#   r<   s       €r   r=  z?TestGUVectorizeJit.test_mismatch_loop_shape_2.<locals>.jit_funcH  s   ø€ àˆF�1�a˜˜cÑ"Ô"Ð"Ð"Ð"r   r*   r+   )r¾   r¾   z§operands could not be broadcast together with remapped shapes [original->remapped]: (4,2)->(4,newaxis) (2,)->() (3,)->(3,newaxis) (3,2)->(3,2)  and requested shape (2)r}  )rk  r	   r   r5   r6   r7   rl  r­   r�   rm  r‘   r’   r“   )r;   r=  rY  r!   r"   rV   r#   ro  r•   rÙ   r<   s             @r   Útest_mismatch_loop_shape_2z-TestGUVectorizeJit.test_mismatch_loop_shape_2>  s  ø€ à×ÒÑ!Ô!Ð!å	Ð)Ñ	*Ô	*ð	)ð 	)ñ 
+Ô	*ð	)õ
 
ð	#ð 	#ð 	#ð 	#ñ 
Œð	#ð ˆåŒI�a˜‘c‰NŒN×"Ò" A q 6Ñ*Ô*ˆÝŒI�a‰LŒLˆÝŒh�t‰nŒnˆÝŒh˜˜1�vÑÔˆð ×Ò�zÑ*Ô*ð 	#¨iØˆF�1�a˜˜cÑ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ðIˆð 	�Š�c�3˜yÔ2Ñ3Ô3Ñ4Ô4Ð4à×Ò�zÑ*Ô*ð 	%¨fØˆH�Q˜˜3 Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%à7ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s$   ÃC!Ã!C%Ã(C%Ä0EÅEÅEc                 ó‚  ‡— t          t          d d …         t          t          d d …         fgd¦  «        d„ ¦   «         Št          ˆfd„¦   «         }t          j                             d¦  «        }t          d¦  «        D ]@}|                     d¦  «        }t	          j        |d          dd¬	¦  «        } ||d
¦  «         ŒAd S )Nrg   c                 ó   — d S rw   r   )r!   r   rV   s      r   Úguvez1TestGUVectorizeJit.test_issue_10287.<locals>.guvea  rŽ   r   c                 óJ   •— t          j        | ¦  «        } ‰| ||¦  «         |S rw   )r5   rb   )r!   r   rV   r…  s      €r   Ú	njit_guvez6TestGUVectorizeJit.test_issue_10287.<locals>.njit_guvef  s(   ø€ å”- Ñ"Ô"ˆCØˆD��A�s‰OŒOˆOØˆJr   éE   i N  éA   é‚   r   r]   r.   )	r	   r   r   r   r5   ÚrandomÚdefault_rngr   Úrepeat)r;   r‡  ÚrngÚ_r!   r"   r…  s         @r   Útest_issue_10287z#TestGUVectorizeJit.test_issue_10287`  s×   ø€ Ý	•w˜q˜q˜q”z¥5­'°!°!°!¬*Ð5Ð6¸Ñ	FÔ	Fð	ð 	ñ 
GÔ	Fð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	õ Œi×#Ò# BÑ'Ô'ˆå�u‘”ð 	ð 	ˆAØ—
’
˜2‘”ˆAÝ”	˜!˜Dœ' 3¨QÐ/Ñ/Ô/ˆAØˆI�a˜‰OŒOˆOˆOð	ð 	r   N)rn   rm   ro   rD   r*  r0  r3  r7  ÚunittestÚexpectedFailurer;  r>  rB  rF  rJ  rN  r_  rp  ru  ry  r~  r‚  r�  r   r   r   r   r   %  s.  € € € € € Ø€Fð	,ð 	,ð 	,ð#ð #ð #ð#ð #ð #ð#ð #ð #ð Ôð#ð #ñ Ôð#ð	Bð 	Bð 	Bð	&ð 	&ð 	&ð0ð 0ð 0ð/ð /ð /ð$/ð /ð /ð",2ð ,2ð ,2ð\2ð 2ð 2ð<2ð 2ð 2ð>2ð 2ð 2ð@2ð 2ð 2ð, 2ð  2ð  2ðDð ð ð ð r   r   Ú__main__)r‘  r  Únumpyr5   Únumbar   r   r   r   r   r   r	   Únumba.core.errorsr
   Únumba.np.ufuncr   Únumba.tests.supportr   r   r   r$   r&   rs   r™   rŸ   rã   r  r  r   rn   Úmainr   r   r   ú<module>rš     st  ðØ €€€Ø €€€à Ð Ð Ð à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ )Ð )Ð )Ð )Ð )Ð )Ø &Ð &Ð &Ð &Ð &Ð &Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð-ð -ð -ðð ð ðFAð FAð FAð FAð FA� (ñ FAô FAð FAðRB.ð B.ð B.ð B.ð B.˜/¨8ñ B.ô B.ð B.ðJð ð ð ð ˜ñ ô ð ð
`;ð `;ð `;ð `;ð `;˜¨ñ `;ô `;ð `;ðFZ0ð Z0ð Z0ð Z0ð Z0˜O¨Xñ Z0ô Z0ð Z0ðzð ð ð ð Ð$9ñ ô ð ð
o-ð o-ð o-ð o-ð o-˜o¨xñ o-ô o-ð o-ðdMð Mð Mð Mð M˜¨(ñ Mô Mð Mð`
 ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   