
    J/Ph                     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    Z/var/www/html/test/jupyter/venv/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          q519r   )r   forceobjc                 8    t                       | |z   t          z   S r   )objectr   r   s     r   add_objmode_usecaser!       s    
HHHq519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    
HHH
C1XX  AgJr   c                      t          |           S r   r   r   s    r   	use_c_sinr3   A   s    88Or   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       q5Lr   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    1ur   )r   )r   r@   s   ` r   make_closurerA   [   s;    td###    $# 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    q6Mr   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 5q999 7 71 = =qAAA 2 21a 8 8!<<<		!Q333&&s~q99
j 1 19==='';;k 2 2I>>>>>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    1Q44Kr   c                  v    t           j        t                   } t                                          |            d S r   )sysmodulesr]   rR   r\   )rY   s    r   	self_testrk      s,    
+h
CMMs#####r   )parallelr   r   c                     | | z  | z   S r   r   )rO   s    r   parfor_usecasern      s    9s?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$    54     !  4$    4$    4$    4$    4$    ' 4$    '    <??<??<??<?? 
5		4$    
 RXRW~RZ/@ABB bhbgbj0AB$OOO RXa1222
	z		 " "AQJqM#TJqM#bhz)<===4$   ? ? ? ? ?( ? ? ?& 4   4   4  $ $ $
 d$...  /.  r   