U
    iâËd	  ã                   @   s$  d Z ddlZddlmZmZ ddlmZ eejejfƒdd„ ƒZedd„ ƒZ	ed	d
�dd„ ƒZ
ed	d
�dd„ ƒZdd„ ZdZddlmZ dd„ Zed	d
�dd„ ƒZed	d�dd„ ƒZddlZddlmZ ed	d
�dd„ ƒZdd„ Zdd„ Zd Zd!Zed	d
�d"d#„ ƒZd$d%„ Zed	d
�Zed	d�ZdS )&z_
Separate module with function samples for serialization tests,
to avoid issues with __main__.
é    N)ÚjitÚgenerated_jit)Útypesc                 C   s   | | S ©N© ©ÚaÚbr   r   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/tests/serialize_usecases.pyÚadd_with_sig   s    r   c                 C   s   | | S r   r   r   r   r   r
   Úadd_without_sig   s    r   T©Znopythonc                 C   s   | | S r   r   r   r   r   r
   Úadd_nopython   s    r   c                 C   s   t ƒ  | | S r   )Úobjectr   r   r   r
   Úadd_nopython_fail   s    r   c                    s   t dd�‡ fdd„ƒ}|S )NTr   c                    s   ˆ |  | S r   r   )r	   Úc©r   r   r
   Úinner   s    zclosure.<locals>.inner©r   )r   r   r   r   r
   Úclosure   s    r   g      @)Úsqrtc                    s   t f |Ž‡ fdd„ƒ}|S )Nc                    s"   t ttd ƒ}t ˆ | ¡t|ƒ S )Né   )ÚmaxÚKÚmathÚhypotr   )ÚyÚk©Úxr   r
   r   (   s    z#closure_with_globals.<locals>.innerr   )r   Újit_argsr   r   r   r
   Úclosure_with_globals'   s    r!   c                 C   s   t  | |¡S r   ©r   r   ©r   r   r   r   r
   Úother_function1   s    r$   )Zforceobjc                 C   s   t |  S r   )r   r   r   r   r
   Úget_global_objmode5   s    r%   c                 C   s   t  d¡ t | ¡t  ¡ fS )Né*   )ÚnprandÚseedÚnpÚcosÚrandomr   r   r   r
   Úget_renamed_module<   s    
r,   c                    s   t dd�‡ fdd„ƒ}|S )NTr   c                    s   t ˆ | ƒ| S r   )r$   )r   Úzr   r   r
   r   C   s    z-closure_calling_other_function.<locals>.innerr   ©r   r   r   r   r
   Úclosure_calling_other_functionB   s    r/   c                    s2   t dd�‡fdd„ƒ‰ t dd�‡ ‡fdd„ƒ}|S )NTr   c                    s   t  ˆ | ¡S r   r"   ©r   r   r   r
   Úother_innerI   s    z2closure_calling_other_closure.<locals>.other_innerc                    s   ˆ | ƒˆ S r   r   r0   ©r1   r   r   r
   r   M   s    z,closure_calling_other_closure.<locals>.innerr   r.   r   r2   r
   Úclosure_calling_other_closureH   s
    r3   é   r&   c                    s*   d‰ t | tjƒrdd„ }n‡ fdd„}|S )Nr   c                 S   s   | | t  S r   )Úk1r#   r   r   r
   Úimpl\   s    zgenerated_add.<locals>.implc                    s   | | t  ˆ  S r   )Úk2r#   ©Zk3r   r
   r6   _   s    )Ú
isinstancer   ÚComplex)r   r   r6   r   r8   r
   Úgenerated_addX   s
    
r;   c                  K   s(   d}i }t | ¡ |ƒ tf | Ž|d ƒS )Nz…
        def dyn_func(x):
            res = 0
            for i in range(x):
                res += x
            return res
        Údyn_func)ÚexecÚstripr   )r    ÚcodeÚnsr   r   r
   Ú_get_dyn_funce   s    rA   ) Ú__doc__r   Znumbar   r   Z
numba.corer   Zint32r   r   r   r   r   r   r   r!   r$   r%   Únumpyr)   Znumpy.randomr+   r'   r,   r/   r3   r5   r7   r;   rA   r<   Zdyn_func_objmoder   r   r   r
   Ú<module>   s@   









