o
    i                     @   s  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d	d
 Zdd Zeddddd Zeddddd Zedddd Zeddddd Zeddddd Zeddddd Zeddddd Zeddddd Zedddd d! Zedddd"d# Zedddd$d% ZeZedddd&d% ZeZd'd( Zed)Zed*Zed+Z ed,Z!e"d-Z#edddd.d/ Z$d0Z%e&d1ej'fd2ej(fgZ)ej&d1ej'fd2ej(fgdd3Z*ej+d4e)d5Z,e-e,j.D ]Z/e/d0 e,e/ d1< e/d6 e,e/ d2< qej0e,e*d5Z1edddd7d8 Z2G d9d: d:eZ3edd;d<d= Z4edd;d>d? Z5edd;d@dA Z6dBdC Z7eddddDdEdF Z8dS )Gz
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                 C   s   | S N xr   r   X/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/numba/tests/cache_usecases.pysimple_usecase      r   c                 C      t | S r   )r   r   r   r   r   simple_usecase_caller   s   r   c                 C      | | t  S r   Zr   yr   r   r   add_usecase      r   )r
   forceobjc                 C   s   t   | | t S r   )objectr   r   r   r   r   add_objmode_usecase    s   r   )r   c                 C   r   r   r   r   r   r   r   add_nocache_usecase&   r   r   c                 C   r   r   r   r   r   r   r   inner+   r   r    c                 C      t | | S r   r    r   r   r   r   outer/   r   r#   Fc                 C   r!   r   r"   r   r   r   r   outer_uncached3   r   r$   c                 C   s$   t   d}t| D ]}|| }q	|S )Nr   )r   range)nresir   r   r   
looplifted8   s
   
r)   c                 C   r   r   r   r   r   r   r   	use_c_sinA      r*   c                 C   r   r   )r*   r   r   r   r   use_c_sin_nest1E   r+   r,   c                 C   r   r   )r,   r   r   r   r   use_c_sin_nest2I   r+   r-   c                 C      | d S )N   r   r   r   r   r   ambiguous_functionN   r+   r0   c                 C   r.   )N   r   r   r   r   r   r0   T   r+   c                    s   t ddd fdd}|S )NTr	   c                    s    |  S r   r   )r   r   r   r   closure\   r+   zmake_closure.<locals>.closure)r   )r   r2   r   r   r   make_closure[   s   
r3            	   i@B c                   C   s   t S r   )biggier   r   r   r   use_big_arrayj   r   r9      ab)alignr/   )dtypeg     @E@c                 C   s   | | S r   r   )aryr(   r   r   r   record_return~   r+   r@   c                   @   s   e Zd ZdZd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                 C   s   |  |ddd |  |ddd |  |ddd |  |ddd ||jd}|  t|d ||jd}|  t|d d S )Nr/   r4   r1   r:   )r/   g     E@)	assertPreciseEqualr   r   r$   r#   r@   
packed_arrtuplealigned_arr)selfmod
packed_recaligned_recr   r   r   check_module   s   z_TestModule.check_moduleN)__name__
__module____qualname____doc__rJ   r   r   r   r   rA      s    rA   )r
   c                 C   s   | |  S r   r   r   r   r   r   first_class_function_mul   r+   rO   c                 C   s   | |  S r   r   r   r   r   r   first_class_function_add   r+   rP   c                 C   s   | |S r   r   )fr   r   r   r   first_class_function_usecase   r+   rR   c                  C   s   t jt } t |  d S r   )sysmodulesrK   rA   rJ   )rG   r   r   r   	self_test   s   
rU   )parallelr
   r   c                 C   s   | |  |  S r   r   )r?   r   r   r   parfor_usecase   r   rW   )9rN   rS   numpynpnumbar   r   
numba.corer   numba.tests.ctypes_usecasesr   numba.tests.supportr   r   r   r   r   r   r   r    r#   r$   r)   r*   r,   r-   r0   renamed_function1renamed_function2r3   closure1closure2closure3closure4aranger8   r9   r   r>   int8float64packed_record_typealigned_record_typeemptyrC   r%   sizer(   arrayrE   r@   rA   rO   rP   rR   rU   rW   r   r   r   r   <module>   s    
































