§
    ƒÛg'  ã                   óœ  — d Z ddlZddlZddlmZ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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.j0        ¦  «        D ]Z1e1d"z   e.e1         d#<   e1d(z   e.e1         d$<   Œ ej2        e.e,¬'¦  «        Z3 edd¬¦  «        d)„ ¦   «         Z4 G d*„ d+e¦  «        Z5 ed¬,¦  «        d-„ ¦   «         Z6 ed¬,¦  «        d.„ ¦   «         Z7 ed¬,¦  «        d/„ ¦   «         Z8d0„ Z9 eddd¬1¦  «        d2„ ¦   «         Z:dS )3zƒ
This file will be copied to a temporary directory in order to
exercise caching compiled Numba functions.

See test_dispatcher.py.
é    N)ÚjitÚgenerated_jitÚprange)Útypes©Úc_sin)ÚTestCaseÚcaptured_stderrT©ÚcacheÚnopythonc                 ó   — | S ©N© ©Úxs    úP/granary/edev/quantum/lib/python3.11/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                 óH   — t          | t          j        ¦  «        rd„ }nd„ }|S )Nc                 ó   — | |z   S r   r   r   s     r   Úimplzgenerated_usecase.<locals>.impl.   ó   € Ø�q‘5ˆLr   c                 ó   — | |z
  S r   r   r   s     r   r'   zgenerated_usecase.<locals>.impl1   r(   r   )Ú
isinstancer   ÚComplex)r   r   r'   s      r   Úgenerated_usecaser,   +   s>   € å�!•U”]Ñ#Ô#ð ð	ð 	ð 	ð 	ð	ð 	ð 	à€Kr   c                 ó   — | |z   t           z   S r   r   r   s     r   Úinnerr.   6   r   r   c                 ó$   — t          | | ¦  «        S r   ©r.   r   s     r   Úouterr1   :   ó   € å�!��Q‰<Œ<Ðr   Fc                 ó$   — t          | | ¦  «        S r   r0   r   s     r   Úouter_uncachedr4   >   r2   r   c                 óT   — t          ¦   «          d}t          | ¦  «        D ]}||z   }Œ|S )Nr   )r!   Úrange)ÚnÚresÚis      r   Ú
loopliftedr:   C   s5   € å
�H„H€HØ
€CÝ�1‰XŒXð ð ˆØ�A‰gˆˆØ€Jr   c                 ó    — t          | ¦  «        S r   r   r   s    r   Ú	use_c_sinr<   L   s   € å�‰8Œ8€Or   c                 ó    — t          | ¦  «        S r   )r<   r   s    r   Úuse_c_sin_nest1r>   P   s   € å�Q‰<Œ<Ðr   c                 ó    — t          | ¦  «        S r   )r>   r   s    r   Úuse_c_sin_nest2r@   T   s   € å˜1ÑÔÐr   c                 ó   — | dz   S )Né   r   r   s    r   Úambiguous_functionrC   Y   ó   € àˆq‰5€Lr   c                 ó   — | dz   S )Né   r   r   s    r   rC   rC   _   rD   r   c                 ó@   ‡ — t          dd¬¦  «        ˆ fd„¦   «         }|S )NTr   c                 ó   •— ‰| z   S r   r   )r   r   s    €r   Úclosurezmake_closure.<locals>.closureg   s   ø€ à�1‰uˆr   )r   )r   rI   s   ` r   Úmake_closurerJ   f   s;   ø€ Ýˆt˜dÐ#Ñ#Ô#ðð ð ð ñ $Ô#ðð €Nr   é   é   é   é	   i@B c                  ó   — t           S r   )Úbiggier   r   r   Úuse_big_arrayrQ   u   s   € å€Mr   é   ÚaÚb)ÚalignrB   )Údtypeg     @E@c                 ó   — | |         S r   r   )Úaryr9   s     r   Úrecord_returnrY   ‰   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                 ó¢  — |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                       |                     dd¦  «        d¦  «         |                     |j        d¦  «        }|                       t          |¦  «        d¦  «         |                     |j	        d¦  «        }|                       t          |¦  «        d¦  «         d S )NrB   rK   rF   rR   )rB   g     ÀE@)
ÚassertPreciseEqualr   r"   r4   r1   r,   rY   Ú
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Ø×Ò × 5Ò 5°a¸Ñ ;Ô ;¸QÑ?Ô?Ð?à×&Ò& s¤~°qÑ9Ô9ˆ
Ø×Ò¥ jÑ 1Ô 1°9Ñ=Ô=Ð=Ø×'Ò'¨¬¸Ñ;Ô;ˆØ×Ò¥ kÑ 2Ô 2°IÑ>Ô>Ð>Ð>Ð>r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__re   r   r   r   r[   r[   Ž   s-   € € € € € ðð ð
?ð 
?ð 
?ð 
?ð 
?r   r[   )r   c                 ó   — | | z  S r   r   r   s    r   Úfirst_class_function_mulrk   ¢   rD   r   c                 ó   — | | z   S r   r   r   s    r   Úfirst_class_function_addrm   §   rD   r   c                 ó   —  | |¦  «        S r   r   )Úfr   s     r   Úfirst_class_function_usecaserp   ¬   s   € àˆ1ˆQ‰4Œ4€Kr   c                  óv   — t           j        t                   } t          ¦   «                              | ¦  «         d S r   )ÚsysÚmodulesrf   r[   re   )rb   s    r   Ú	self_testrt   ±   s,   € Ý
Œ+•hÔ
€CÝ�M„M×Ò˜sÑ#Ô#Ð#Ð#Ð#r   )Úparallelr   r   c                 ó   — | | z  | z   S r   r   )rX   s    r   Úparfor_usecaserw   ¶   s   € à�‰9�s‰?Ðr   );ri   rr   ÚnumpyÚnpÚnumbar   r   r   Ú
numba.corer   Únumba.tests.ctypes_usecasesr   Únumba.tests.supportr	   r
   r   r   r   r"   r$   r,   r.   r1   r4   r:   r<   r>   r@   rC   Úrenamed_function1Úrenamed_function2rJ   Úclosure1Úclosure2Úclosure3Úclosure4ÚarangerP   rQ   r   rV   Úint8Úfloat64Úpacked_record_typeÚaligned_record_typeÚemptyr^   r6   Úsizer9   Úarrayr`   rY   r[   rk   rm   rp   rt   rw   r   r   r   ú<module>rŒ      sD  ððð ð €
€
€
à Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð €ˆ4˜$ÐÑÔðð ñ  Ôððð ð ð €ˆ4˜$ÐÑÔðð ñ  Ôðð €ˆ4˜$ÐÑÔðð ñ  Ôðð
 €ˆdÐÑÔðð ñ Ôðð €�T 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   