
    xKg                        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jD                  d      Z# edd      d         Z$d!Z% ejL                  d"ejN                  fd#ejP                  fg      Z) ejL                  d"ejN                  fd#ejP                  fgd$      Z* ejV                  d%e)&      Z, e-e,j\                        D ]  Z/e/d!z   e,e/   d"<   e/d'z   e,e/   d#<     ej`                  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        Z8y)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    ^/home/alanp/www/video.onchill/myenv/lib/python3.12/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                 .    t                | |z   t        z   S r   )objectr   r   s     r   add_objmode_usecaser!       s    
H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                 H    t                d}t        |       D ]  }||z   }	 |S )Nr   )r    range)nresis      r   
loopliftedr1   8   s(    
H
C1XAg Jr   c                     t        |       S r   r   r   s    r   	use_c_sinr3   A   s    8Or   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                 2     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y)_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                    | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j	                  dd      d       |j                  |j                  d      }| j                  t        |      d       |j                  |j                  d      }| j                  t        |      d       y )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 5q9 7 71 =qA 2 21a 8!<		!Q3&&s~~q9
j 19='';k 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    Q4Kr   c                  d    t         j                  t           } t               j	                  |        y r   )sysmodulesr]   rR   r\   )rY   s    r   	self_testrk      s     
++h
CM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 4$   4$   4$  
 d  4$   4$   54  ! 4$   4$   4$   4$   4$   ' 4$   '  ???? 
5	4$   
 RXXRWW~RZZ/@AB bhhbggbjj0AB$O RXXa12
	z	AQJqM#TJqM# 
  bhhz)<=4$  ?( ?& 4  4  4 $
 d$. /r   