§
    2@Äjš  ã                   ól  — d Z ddlZddlZddlmZmZ ddlmZ ddl	m
Z
 ddlmZmZ  edd¬¦  «        d	„ ¦   «         Zd
„ Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         ZeZ edd¬¦  «        d„ ¦   «         ZeZd„ Z ed¦  «        Z ed¦  «        Z ed¦  «        Z  ed¦  «        Z! ej"        d¦  «        Z# edd¬¦  «        d „ ¦   «         Z$d!Z% ej&        d"ej'        fd#ej(        fg¦  «        Z) ej&        d"ej'        fd#ej(        fgd¬$¦  «        Z* ej+        d%e)¬&¦  «        Z, e-e,j.        ¦  «        D ]Z/e/d!z   e,e/         d"<   e/d'z   e,e/         d#<   Œ ej0        e,e*¬&¦  «        Z1 edd¬¦  «        d(„ ¦   «         Z2 G d)„ d*e¦  «        Z3 ed¬+¦  «        d,„ ¦   «         Z4 ed¬+¦  «        d-„ ¦   «         Z5 ed¬+¦  «        d.„ ¦   «         Z6d/„ Z7 eddd¬0¦  «        d1„ ¦   «         Z8dS )2zƒ
This file will be copied to a temporary directory in order to
exercise caching compiled Numba functions.

See test_dispatcher.py.
é    N)ÚjitÚprange)Útypes©Úc_sin)ÚTestCaseÚcaptured_stderrT©ÚcacheÚnopythonc                 ó   — | S ©N© ©Úxs    úKC:\Projects\Historical\venv\Lib\site-packages\numba/tests/cache_usecases.pyÚsimple_usecaser      s   € à€Hó    c                 ó    — t          | ¦  «        S r   )r   r   s    r   Úsimple_usecase_callerr      s   € Ý˜!ÑÔÐr   c                 ó   — | |z   t           z   S r   ©ÚZ©r   Úys     r   Úadd_usecaser      ó   € àˆq‰5•1‰9Ðr   )r   Úforceobjc                 ó8   — t          ¦   «          | |z   t          z   S r   )Úobjectr   r   s     r   Úadd_objmode_usecaser!       s   € å
�H„H€HØˆq‰5•1‰9Ðr   )r   c                 ó   — | |z   t           z   S r   r   r   s     r   Úadd_nocache_usecaser#   &   r   r   c                 ó   — | |z   t           z   S r   r   r   s     r   Úinnerr%   +   r   r   c                 ó$   — t          | | ¦  «        S r   ©r%   r   s     r   Úouterr(   /   ó   € å�!��Q‰<Œ<Ðr   Fc                 ó$   — t          | | ¦  «        S r   r'   r   s     r   Úouter_uncachedr+   3   r)   r   c                 óT   — t          ¦   «          d}t          | ¦  «        D ]}||z   }Œ|S )Nr   )r    Úrange)ÚnÚresÚis      r   Ú
loopliftedr1   8   s5   € å
�H„H€HØ
€CÝ�1‰XŒXð ð ˆØ�A‰gˆˆØ€Jr   c                 ó    — t          | ¦  «        S r   r   r   s    r   Ú	use_c_sinr3   A   s   € å�‰8Œ8€Or   c                 ó    — t          | ¦  «        S r   )r3   r   s    r   Úuse_c_sin_nest1r5   E   s   € å�Q‰<Œ<Ðr   c                 ó    — t          | ¦  «        S r   )r5   r   s    r   Úuse_c_sin_nest2r7   I   s   € å˜1ÑÔÐr   c                 ó   — | dz   S )Né   r   r   s    r   Úambiguous_functionr:   N   ó   € àˆq‰5€Lr   c                 ó   — | dz   S )Né   r   r   s    r   r:   r:   T   r;   r   c                 ó@   ‡ — t          dd¬¦  «        ˆ fd„¦   «         }|S )NTr
   c                 ó   •— ‰| z   S r   r   )r   r   s    €r   Úclosurezmake_closure.<locals>.closure\   s   ø€ à�1‰uˆr   )r   )r   r@   s   ` r   Úmake_closurerA   [   s;   ø€ Ýˆt˜dÐ#Ñ#Ô#ðð ð ð ñ $Ô#ðð €Nr   é   é   é   é	   i@B c                  ó   — t           S r   )Úbiggier   r   r   Úuse_big_arrayrH   j   s   € å€Mr   é   ÚaÚb)Úalignr9   )Údtypeg     @E@c                 ó   — | |         S r   r   )Úaryr0   s     r   Úrecord_returnrP   ~   s   € àˆqŒ6€Mr   c                   ó   — e Zd ZdZd„ ZdS )Ú_TestModulez¥
    Tests for functionality of this module's functions.
    Note this does not define any "test_*" method, instead check_module()
    should be called by hand.
    c                 óN  — |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                     |j        d¦  «        }|                       t          |¦  «        d¦  «         |                     |j        d¦  «        }|                       t          |¦  «        d¦  «         d S )Nr9   rB   r=   rI   )r9   g     ÀE@)	ÚassertPreciseEqualr   r!   r+   r(   rP   Ú
packed_arrÚtupleÚaligned_arr)ÚselfÚmodÚ
packed_recÚaligned_recs       r   Úcheck_modulez_TestModule.check_moduleŠ   s  € Ø×Ò §¢°°1Ñ 5Ô 5°qÑ9Ô9Ð9Ø×Ò × 7Ò 7¸¸1Ñ =Ô =¸qÑAÔAÐAØ×Ò × 2Ò 2°1°aÑ 8Ô 8¸!Ñ<Ô<Ð<Ø×Ò §	¢	¨!¨Q¡¤°Ñ3Ô3Ð3à×&Ò& s¤~°qÑ9Ô9ˆ
Ø×Ò¥ jÑ 1Ô 1°9Ñ=Ô=Ð=Ø×'Ò'¨¬¸Ñ;Ô;ˆØ×Ò¥ kÑ 2Ô 2°IÑ>Ô>Ð>Ð>Ð>r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r\   r   r   r   rR   rR   ƒ   s-   € € € € € ðð ð	?ð 	?ð 	?ð 	?ð 	?r   rR   )r   c                 ó   — | | z  S r   r   r   s    r   Úfirst_class_function_mulrb   –   r;   r   c                 ó   — | | z   S r   r   r   s    r   Úfirst_class_function_addrd   ›   r;   r   c                 ó   —  | |¦  «        S r   r   )Úfr   s     r   Úfirst_class_function_usecaserg       s   € àˆ1ˆQ‰4Œ4€Kr   c                  óv   — t           j        t                   } t          ¦   «                              | ¦  «         d S r   )ÚsysÚmodulesr]   rR   r\   )rY   s    r   Ú	self_testrk   ¥   s,   € Ý
Œ+•hÔ
€CÝ�M„M×Ò˜sÑ#Ô#Ð#Ð#Ð#r   )Úparallelr   r   c                 ó   — | | z  | z   S r   r   )rO   s    r   Úparfor_usecasern   ª   s   € à�‰9�s‰?Ðr   )9r`   ri   ÚnumpyÚnpÚnumbar   r   Ú
numba.corer   Únumba.tests.ctypes_usecasesr   Únumba.tests.supportr   r	   r   r   r   r!   r#   r%   r(   r+   r1   r3   r5   r7   r:   Úrenamed_function1Úrenamed_function2rA   Úclosure1Úclosure2Úclosure3Úclosure4ÚarangerG   rH   r   rM   Úint8Úfloat64Úpacked_record_typeÚaligned_record_typeÚemptyrU   r-   Úsizer0   ÚarrayrW   rP   rR   rb   rd   rg   rk   rn   r   r   r   ú<module>rƒ      s  ððð ð €
€
€
à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð €ˆ4˜$ÐÑÔðð ñ  Ôððð ð ð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð
 €ˆdÐÑÔðð ñ Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ5˜4Ð Ñ Ô ðð ñ !Ô ðð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð 'Ð à€ˆ4˜$ÐÑÔðð ñ  Ôðð 'Ð ðð ð ð ˆ<˜‰?Œ?€Øˆ<˜‰?Œ?€Øˆ<˜‰?Œ?€Øˆ<˜‰?Œ?€ð 
ˆŒ�5Ñ	Ô	€à€ˆ4˜$ÐÑÔðð ñ  Ôðð €ð
 �R”X  R¤W˜~°°R´ZÐ/@ÐAÑBÔBÐ Ø�b”h  b¤g °°b´jÐ0AÐBÈ$ÐOÑOÔOÐ àˆRŒX�aÐ1Ð2Ñ2Ô2€
Ø	ˆˆzŒÑ	Ô	ð "ð "€AØ˜Q™€Jˆq„M�#ÑØ˜T™€Jˆq„M�#ÑÐàˆbŒh�zÐ)<Ð=Ñ=Ô=€à€ˆ4˜$ÐÑÔðð ñ  Ôðð?ð ?ð ?ð ?ð ?�(ñ ?ô ?ð ?ð& €ˆ4€�„ðð ñ „ðð €ˆ4€�„ðð ñ „ðð €ˆ4€�„ðð ñ „ðð$ð $ð $ð
 €ˆd˜$¨Ð.Ñ.Ô.ðð ñ /Ô.ðð ð r   