a
    öDfb                     @   sf  d dl Z d dlZddlmZ ddlmZ e  dd Zejddd	Z	ejdd
dZ
ejdddZejdddZejdddZejdddZejdddZejdddZejdddZejdddZejdddZejdddZejdd d!Zejdd"d#Zejdd$d%Zejdd&d'Zejdd(d)Zejdd*d+Zejdd,d-Zejdd.d/Zejdd0d1Zejdd2d3Zejdd4d5Zejdd6d7Z ejdd8d9Z!ejdd:d;Z"ejdd<d=Z#ejdd>d?Z$ejdd@dAZ%ejddBdCZ&ejddDdEZ'ejddFdGZ(ejddHdIZ)ejddJdKZ*ejddLdMZ+ejddNdOZ,ejddPdQZ-ejddRdSZ.ejddTdUZ/ejddVdWZ0ejddXdYZ1ejddZd[Z2ejdd\d]Z3ejdd^d_Z4ejdd`daZ5ejddbdcZ6ejddddeZ7ejddfdgZ8ejddhdiZ9ejddjdkZ:ejddldmZ;ejddndoZ<ejddpdqZ=ejddrdsZ>ejddtduZ?ejddvdwZ@ejddxdyZAejddzd{ZBejdd|d}ZCejdd~dZDejdddZEejdddZFejdddZGejdddZHejdddZIejdddZJejdddZKejdddZLejdddZMejdddZNejdddZOejdddZPejdddZQejdddZRejdddZSejdddZTejdddZUejdddZVejdddZWejdddZXejdddZYejdddZZejdddZ[ejdddZ\ejdddZ]ejdddZ^ejdddZ_ejdddZ`ejdddZaejdddZbejdddZcejdddZdejdddZeejdddÄZfejdddńZgejdddǄZhejdddɄZiejddd˄Zjejddd̈́ZkejdddτZlejdddфZmejdddӄZnejdddՄZoejdddׄZpejdddلZqejdddۄZrejd dd݄Zsejddd߄ZtejdddZuejdddZvejdddZwejdddZxejdddZyejdddZzejdddZ{ejd	ddZ|ejd
ddZ}ejdddZ~ejdddZejdddZejdddZejdddZejdddZejdddZejdd dZejdddZejdddZejdddZejddd	Zejdd
dZejdddZejdddZejdddZejdddZejdddZejdddZejdddZejdddZejd ddZejd!ddZejd"d d!Zejd#d"d#Zejd$d$d%Zejd%d&d'Zejd&d(d)Zejd'd*d+Zejd(d,d-Zejd)d.d/Zejd*d0d1Zejd+d2d3Zejd,d4d5Zejd-d6d7Zejd.d8d9Zejd/d:d;Zejd0d<d=Zejd1d>d?Zejd2d@dAZejd3dBdCZejd4dDdEZejd5dFdGZejd6dHdIZejd7dJdKZejd8dLdMZejd9dNdOZejd:dPdQZejd;dRdSZejd<dTdUZejd=dVdWZejd>dXdYZejd?dZd[Zejd@d\d]ZejdAd^d_ZejdBd`daZejdCdbdcZejdDdddeZejdEdfdgZejdFdhdiZejdGdjdkZejdHdldmZejdIdndoZejdJdpdqZejdKdrdsZejdLdtduZejdMdvdwZejdNdxdyZejdOdzd{ZejdPd|d}ZejdQd~dZejdRddZejdSddZejdTddZejdUddZejdVddZejdWddZejdXddZejdYddZejdZddZejd[ddZejd\ddZdS (]      N   )is_hip   )corec                  C   sZ   t jt jt jtdd} t r<t j| dddd}nt j| ddd}t d	|S )
Nz..Zthird_partyZhiplibZbitcodezcuda2gcn.bcZcudazlibdevice.10.bcZTRITON_LIBDEVICE_PATH)ospathjoindirnameabspath__file__r   getenv)Zthird_party_dirdefault r   a/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/triton/language/math.pylibdevice_path   s
     r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )N	libdeviceint32Z__nv_clzint64Z
__nv_clzllTis_pure_builderr   Zextern_elementwiser   dtypearg0r   r   r   r   clz   s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r   Z	__nv_popcr   Z__nv_popcllTr   r   r   r   r   r   popc   s    
r   c              	   C   sD   t jdt | ||gt dt dt dfdt dfid|dS )Nr   r   Z__nv_byte_permTr   r   r   arg1arg2r   r   r   r   	byte_perm%   s
    &r!   c                 C   s   t | |} t ||}t | ||\} }| j}| rRt || j|j| jS |	 rtt |
| j|j| jS | rt || j|j| jS dsJ d| d S NFzUnexpected dtype )r   
_to_tensorbinary_op_type_legalizationr   is_floatingtensorZcreate_minfhandletypeis_int_signedZcreate_minsiis_int_unsignedZcreate_minuir   r   r   r   r   r   r   min,   s    r,   c                 C   s   t | |} t ||}t | ||\} }| j}| rRt || j|j| jS |	 rtt |
| j|j| jS | rt || j|j| jS dsJ d| d S r"   )r   r#   r$   r   r%   r&   Zcreate_maxfr'   r(   r)   Zcreate_maxsir*   Zcreate_maxuir+   r   r   r   max<   s    r-   c                 C   s   t jdt | |gt dt dfdt dft dt dfdt dft dt dfdt dft dt dfd	t dfid
|dS )Nr   r   Z
__nv_mulhiuint32Z__nv_umulhir   Z__nv_mul64hiuint64Z__nv_umul64hiTr   r   r   r   r   r   r   r   mulhiL   s    r1   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r   Z
__nv_mul24r.   Z__nv_umul24Tr   r   r0   r   r   r   mul24W   s    r2   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r   Z	__nv_brevr   Z__nv_brevllTr   r   r   r   r   r   brev`   s    
r3   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r   r.   Z__nv_sadZ	__nv_usadTr   r   r   r   r   r   sadi   s    &&r4   c                 C   sr   t jdt | gt dfdt dft dfdt dft dfdt dft dfd	t dfid
|dS )Nr   r   Z__nv_absr   Z
__nv_llabsfp32Z
__nv_fabsffp64Z	__nv_fabsTr   r   r   r   r   r   absr   s    
r7   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_floorfr6   Z
__nv_floorTr   r   r   r   r   r   floor}   s    
r8   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_rcp64hTr   r   r   r   r   r   rcp64h   s
    r9   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_rsqrtfr6   Z
__nv_rsqrtTr   r   r   r   r   r   rsqrt   s    
r:   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r6   Z	__nv_ceilr5   Z
__nv_ceilfTr   r   r   r   r   r   ceil   s    
r;   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r6   Z
__nv_truncr5   Z__nv_truncfTr   r   r   r   r   r   trunc   s    
r<   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_exp2fr6   Z	__nv_exp2Tr   r   r   r   r   r   exp2   s    
r=   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_saturatefTr   r   r   r   r   r   	saturatef   s
    r>   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z__nv_fmaf_rnr6   Z__nv_fma_rnTr   r   r   r   r   r   fma_rn   s    &&r?   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z__nv_fmaf_rzr6   Z__nv_fma_rzTr   r   r   r   r   r   fma_rz   s    &&r@   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z__nv_fmaf_rdr6   Z__nv_fma_rdTr   r   r   r   r   r   fma_rd   s    &&rA   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z__nv_fmaf_rur6   Z__nv_fma_ruTr   r   r   r   r   r   fma_ru   s    &&rB   c              	   C   s:   t jdt | |gt dt dfdt dfid|dS )Nr   r5   Z__nv_fast_fdividefTr   r   r0   r   r   r   fast_dividef   s
    rC   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fdiv_rnr6   Z__nv_ddiv_rnTr   r   r0   r   r   r   div_rn   s    rD   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fdiv_rzr6   Z__nv_ddiv_rzTr   r   r0   r   r   r   div_rz   s    rE   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fdiv_rdr6   Z__nv_ddiv_rdTr   r   r0   r   r   r   div_rd   s    rF   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fdiv_rur6   Z__nv_ddiv_ruTr   r   r0   r   r   r   div_ru   s    rG   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_frcp_rnr6   Z__nv_drcp_rnTr   r   r   r   r   r   rcp_rn  s    
rH   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_frcp_rzr6   Z__nv_drcp_rzTr   r   r   r   r   r   rcp_rz  s    
rI   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_frcp_rdr6   Z__nv_drcp_rdTr   r   r   r   r   r   rcp_rd  s    
rJ   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_frcp_rur6   Z__nv_drcp_ruTr   r   r   r   r   r   rcp_ru"  s    
rK   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_fsqrt_rnr6   Z__nv_dsqrt_rnTr   r   r   r   r   r   sqrt_rn+  s    
rL   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_fsqrt_rzr6   Z__nv_dsqrt_rzTr   r   r   r   r   r   sqrt_rz4  s    
rM   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_fsqrt_rdr6   Z__nv_dsqrt_rdTr   r   r   r   r   r   sqrt_rd=  s    
rN   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_fsqrt_rur6   Z__nv_dsqrt_ruTr   r   r   r   r   r   sqrt_ruF  s    
rO   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_sqrtfr6   Z	__nv_sqrtTr   r   r   r   r   r   sqrtO  s    
rP   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dadd_rnr5   Z__nv_fadd_rnTr   r   r0   r   r   r   add_rnX  s    rQ   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dadd_rzr5   Z__nv_fadd_rzTr   r   r0   r   r   r   add_rza  s    rR   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dadd_rdr5   Z__nv_fadd_rdTr   r   r0   r   r   r   add_rdj  s    rS   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dadd_rur5   Z__nv_fadd_ruTr   r   r0   r   r   r   add_rus  s    rT   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dmul_rnr5   Z__nv_fmul_rnTr   r   r0   r   r   r   mul_rn|  s    rU   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dmul_rzr5   Z__nv_fmul_rzTr   r   r0   r   r   r   mul_rz  s    rV   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dmul_rdr5   Z__nv_fmul_rdTr   r   r0   r   r   r   mul_rd  s    rW   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r6   Z__nv_dmul_rur5   Z__nv_fmul_ruTr   r   r0   r   r   r   mul_ru  s     	rX   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2float_rnr5   Tr   r   r   r   r   r   double2float_rn  s
    rY   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2float_rzr5   Tr   r   r   r   r   r   double2float_rz  s
    rZ   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2float_rdr5   Tr   r   r   r   r   r   double2float_rd  s
    r[   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2float_rur5   Tr   r   r   r   r   r   double2float_ru  s
    r\   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2int_rnr   Tr   r   r   r   r   r   double2int_rn  s
    r]   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2int_rzr   Tr   r   r   r   r   r   double2int_rz  s
    r^   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2int_rdr   Tr   r   r   r   r   r   double2int_rd  s
    r_   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2int_rur   Tr   r   r   r   r   r   double2int_ru  s
    r`   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2uint_rnr   Tr   r   r   r   r   r   double2uint_rn  s
    ra   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2uint_rzr   Tr   r   r   r   r   r   double2uint_rz  s
    rb   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2uint_rdr   Tr   r   r   r   r   r   double2uint_rd  s
    rc   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2uint_rur   Tr   r   r   r   r   r   double2uint_ru  s
    rd   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_int2double_rnr6   Tr   r   r   r   r   r   int2double_rn  s
    re   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r.   Z__nv_uint2double_rnr6   Tr   r   r   r   r   r   uint2double_rn  s
    rf   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2int_rnr   Tr   r   r   r   r   r   float2int_rn  s
    rg   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2int_rzr   Tr   r   r   r   r   r   float2int_rz  s
    rh   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2int_rdr   Tr   r   r   r   r   r   float2int_rd  s
    ri   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2int_rur   Tr   r   r   r   r   r   float2int_ru   s
    rj   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2uint_rnr   Tr   r   r   r   r   r   float2uint_rn'  s
    rk   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2uint_rzr   Tr   r   r   r   r   r   float2uint_rz.  s
    rl   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2uint_rdr   Tr   r   r   r   r   r   float2uint_rd5  s
    rm   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2uint_rur   Tr   r   r   r   r   r   float2uint_ru<  s
    rn   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_int2float_rnr5   Tr   r   r   r   r   r   int2float_rnC  s
    ro   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_int2float_rzr5   Tr   r   r   r   r   r   int2float_rzJ  s
    rp   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_int2float_rdr5   Tr   r   r   r   r   r   int2float_rdQ  s
    rq   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_int2float_rur5   Tr   r   r   r   r   r   int2float_ruX  s
    rr   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r.   Z__nv_uint2float_rnr5   Tr   r   r   r   r   r   uint2float_rn_  s
    rs   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r.   Z__nv_uint2float_rzr5   Tr   r   r   r   r   r   uint2float_rzf  s
    rt   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r.   Z__nv_uint2float_rdr5   Tr   r   r   r   r   r   uint2float_rdm  s
    ru   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r.   Z__nv_uint2float_rur5   Tr   r   r   r   r   r   uint2float_rut  s
    rv   c              	   C   s:   t jdt | |gt dt dfdt dfid|dS )Nr   r   Z__nv_hiloint2doubler6   Tr   r   r0   r   r   r   hiloint2double{  s
    rw   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2lointr   Tr   r   r   r   r   r   double2loint  s
    rx   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2hiintr   Tr   r   r   r   r   r   double2hiint  s
    ry   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ll_rnr   Tr   r   r   r   r   r   float2ll_rn  s
    rz   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ll_rzr   Tr   r   r   r   r   r   float2ll_rz  s
    r{   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ll_rdr   Tr   r   r   r   r   r   float2ll_rd  s
    r|   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ll_rur   Tr   r   r   r   r   r   float2ll_ru  s
    r}   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ull_rnr   Tr   r   r   r   r   r   float2ull_rn  s
    r~   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ull_rzr   Tr   r   r   r   r   r   float2ull_rz  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ull_rdr   Tr   r   r   r   r   r   float2ull_rd  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float2ull_rur   Tr   r   r   r   r   r   float2ull_ru  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ll_rnr   Tr   r   r   r   r   r   double2ll_rn  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ll_rzr   Tr   r   r   r   r   r   double2ll_rz  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ll_rdr   Tr   r   r   r   r   r   double2ll_rd  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ll_rur   Tr   r   r   r   r   r   double2ll_ru  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ull_rnr   Tr   r   r   r   r   r   double2ull_rn  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ull_rzr   Tr   r   r   r   r   r   double2ull_rz  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ull_rdr   Tr   r   r   r   r   r   double2ull_rd  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double2ull_rur   Tr   r   r   r   r   r   double2ull_ru  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2float_rnr5   Tr   r   r   r   r   r   ll2float_rn   s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2float_rzr5   Tr   r   r   r   r   r   ll2float_rz  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2float_rdr5   Tr   r   r   r   r   r   ll2float_rd  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2float_rur5   Tr   r   r   r   r   r   ll2float_ru  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2float_rnr5   Tr   r   r   r   r   r   ull2float_rn  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2float_rzr5   Tr   r   r   r   r   r   ull2float_rz#  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2float_rdr5   Tr   r   r   r   r   r   ull2float_rd*  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2float_rur5   Tr   r   r   r   r   r   ull2float_ru1  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2double_rnr6   Tr   r   r   r   r   r   ll2double_rn8  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2double_rzr6   Tr   r   r   r   r   r   ll2double_rz?  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2double_rdr6   Tr   r   r   r   r   r   ll2double_rdF  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_ll2double_rur6   Tr   r   r   r   r   r   ll2double_ruM  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2double_rnr6   Tr   r   r   r   r   r   ull2double_rnT  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2double_rzr6   Tr   r   r   r   r   r   ull2double_rz[  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2double_rdr6   Tr   r   r   r   r   r   ull2double_rdb  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r/   Z__nv_ull2double_rur6   Tr   r   r   r   r   r   ull2double_rui  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_int_as_floatr5   Tr   r   r   r   r   r   int_as_floatp  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float_as_intr   Tr   r   r   r   r   r   float_as_intw  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r.   Z__nv_uint_as_floatr5   Tr   r   r   r   r   r   uint_as_float~  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_float_as_uintr   Tr   r   r   r   r   r   float_as_uint  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r   Z__nv_longlong_as_doubler6   Tr   r   r   r   r   r   longlong_as_double  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_double_as_longlongr   Tr   r   r   r   r   r   double_as_longlong  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_sinfTr   r   r   r   r   r   	fast_sinf  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_cosfTr   r   r   r   r   r   	fast_cosf  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_log2fTr   r   r   r   r   r   
fast_log2f  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_logfTr   r   r   r   r   r   	fast_logf  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_expfTr   r   r   r   r   r   	fast_expf  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_tanfTr   r   r   r   r   r   	fast_tanf  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_exp10fTr   r   r   r   r   r   fast_exp10f  s
    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_fast_log10fTr   r   r   r   r   r   fast_log10f  s
    r   c              	   C   s:   t jdt | |gt dt dfdt dfid|dS )Nr   r5   Z__nv_fast_powfTr   r   r0   r   r   r   	fast_powf  s
    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r   Z	__nv_haddr.   Z
__nv_uhaddTr   r   r0   r   r   r   hadd  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r   Z
__nv_rhaddr.   Z__nv_urhaddTr   r   r0   r   r   r   rhadd  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fsub_rnr6   Z__nv_dsub_rnTr   r   r0   r   r   r   sub_rn  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fsub_rzr6   Z__nv_dsub_rzTr   r   r0   r   r   r   sub_rz  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fsub_rdr6   Z__nv_dsub_rdTr   r   r0   r   r   r   sub_rd  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_fsub_rur6   Z__nv_dsub_ruTr   r   r0   r   r   r   sub_ru  s    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_frsqrt_rnTr   r   r   r   r   r   rsqrt_rn  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r   Z__nv_ffsr   Z
__nv_ffsllTr   r   r   r   r   r   ffs  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_rintfr6   Z	__nv_rintTr   r   r   r   r   r   rint#  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )	Nr   r5   Z__nv_llrintfr   r6   Z__nv_llrintTr   r   r   r   r   r   llrint.  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_nearbyintfr6   Z__nv_nearbyintTr   r   r   r   r   r   	nearbyint9  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )	Nr   r5   Z__nv_isnanfr   r6   Z__nv_isnandTr   r   r   r   r   r   isnanD  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )	Nr   r5   Z__nv_signbitfr   r6   Z__nv_signbitdTr   r   r   r   r   r   signbitO  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_copysignfr6   Z__nv_copysignTr   r   r0   r   r   r   copysignZ  s    r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r5   Z__nv_finitefr   Tr   r   r   r   r   r   finitefc  s
    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )	Nr   r5   Z__nv_isinffr   r6   Z__nv_isinfdTr   r   r   r   r   r   isinfj  s    
r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_nextafterfr6   Z__nv_nextafterTr   r   r0   r   r   r   	nextafters  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z	__nv_sinfr6   Z__nv_sinTr   r   r   r   r   r   sin|  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z	__nv_cosfr6   Z__nv_cosTr   r   r   r   r   r   cos  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_sinpifr6   Z
__nv_sinpiTr   r   r   r   r   r   sinpi  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_cospifr6   Z
__nv_cospiTr   r   r   r   r   r   cospi  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z	__nv_tanfr6   Z__nv_tanTr   r   r   r   r   r   tan  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_log2fr6   Z	__nv_log2Tr   r   r   r   r   r   log2  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z	__nv_expfr6   Z__nv_expTr   r   r   r   r   r   exp  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_exp10fr6   Z
__nv_exp10Tr   r   r   r   r   r   exp10  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_coshfr6   Z	__nv_coshTr   r   r   r   r   r   cosh  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_sinhfr6   Z	__nv_sinhTr   r   r   r   r   r   sinh  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_tanhfr6   Z	__nv_tanhTr   r   r   r   r   r   tanh  s    
r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_atan2fr6   Z
__nv_atan2Tr   r   r0   r   r   r   atan2  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_atanfr6   Z	__nv_atanTr   r   r   r   r   r   atan  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_asinfr6   Z	__nv_asinTr   r   r   r   r   r   asin  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_acosfr6   Z	__nv_acosTr   r   r   r   r   r   acos  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z	__nv_logfr6   Z__nv_logTr   r   r   r   r   r   log  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_log10fr6   Z
__nv_log10Tr   r   r   r   r   r   log10  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_log1pfr6   Z
__nv_log1pTr   r   r   r   r   r   log1p  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_acoshfr6   Z
__nv_acoshTr   r   r   r   r   r   acosh  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_asinhfr6   Z
__nv_asinhTr   r   r   r   r   r   asinh'  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_atanhfr6   Z
__nv_atanhTr   r   r   r   r   r   atanh0  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_expm1fr6   Z
__nv_expm1Tr   r   r   r   r   r   expm19  s    
r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_hypotfr6   Z
__nv_hypotTr   r   r0   r   r   r   hypotB  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_rhypotfr6   Z__nv_rhypotTr   r   r0   r   r   r   rhypotK  s    r   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z__nv_norm3dfr6   Z__nv_norm3dTr   r   r   r   r   r   norm3dT  s    &&r   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z__nv_rnorm3dfr6   Z__nv_rnorm3dTr   r   r   r   r   r   rnorm3d]  s    &&r   c                 C   s|   t jdt | |||gt dt dt dt dfdt dft dt dt dt dfdt dfid|dS )Nr   r5   Z__nv_norm4dfr6   Z__nv_norm4dTr   r   r   r   r    Zarg3r   r   r   r   norm4df  s    ""r   c                 C   s|   t jdt | |||gt dt dt dt dfdt dft dt dt dt dfdt dfid|dS )Nr   r5   Z__nv_rnorm4dfr6   Z__nv_rnorm4dTr   r   r   r   r   r   rnorm4dq  s    ""r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_cbrtfr6   Z	__nv_cbrtTr   r   r   r   r   r   cbrt|  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_rcbrtfr6   Z
__nv_rcbrtTr   r   r   r   r   r   rcbrt  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_j0fr6   Z__nv_j0Tr   r   r   r   r   r   j0  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_j1fr6   Z__nv_j1Tr   r   r   r   r   r   j1  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_y0fr6   Z__nv_y0Tr   r   r   r   r   r   y0  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_y1fr6   Z__nv_y1Tr   r   r   r   r   r   y1  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )	Nr   r   r5   Z__nv_ynfr6   Z__nv_ynTr   r   r0   r   r   r   yn  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )	Nr   r   r5   Z__nv_jnfr6   Z__nv_jnTr   r   r0   r   r   r   jn  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_cyl_bessel_i0fr6   Z__nv_cyl_bessel_i0Tr   r   r   r   r   r   cyl_bessel_i0  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_cyl_bessel_i1fr6   Z__nv_cyl_bessel_i1Tr   r   r   r   r   r   cyl_bessel_i1  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z	__nv_erffr6   Z__nv_erfTr   r   r   r   r   r   erf  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_erfinvfr6   Z__nv_erfinvTr   r   r   r   r   r   erfinv  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_erfcfr6   Z	__nv_erfcTr   r   r   r   r   r   erfc  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_erfcxfr6   Z
__nv_erfcxTr   r   r   r   r   r   erfcx  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_erfcinvfr6   Z__nv_erfcinvTr   r   r   r   r   r   erfcinv  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_normcdfinvfr6   Z__nv_normcdfinvTr   r   r   r   r   r   
normcdfinv  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_normcdffr6   Z__nv_normcdfTr   r   r   r   r   r   normcdf  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_lgammafr6   Z__nv_lgammaTr   r   r   r   r   r   lgamma  s    
r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )	Nr   r5   r   Z__nv_ldexpfr6   Z
__nv_ldexpTr   r   r0   r   r   r   ldexp  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )	Nr   r5   r   Z__nv_scalbnfr6   Z__nv_scalbnTr   r   r0   r   r   r   scalbn#  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z
__nv_fmodfr6   Z	__nv_fmodTr   r   r0   r   r   r   fmod,  s    r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z__nv_remainderfr6   Z__nv_remainderTr   r   r0   r   r   r   	remainder5  s    r   c                 C   sj   t jdt | ||gt dt dt dfdt dft dt dt dfdt dfid|dS )Nr   r5   Z	__nv_fmafr6   Z__nv_fmaTr   r   r   r   r   r   fma>  s    &&r   c                 C   s   t jdt | |gt dt dfdt dft dt dfdt dft dt dfdt dft dt dfdt dfid	|d
S )Nr   r5   r   Z
__nv_powifr6   Z	__nv_powiZ	__nv_powfZ__nv_powTr   r   r0   r   r   r   powG  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_tgammafr6   Z__nv_tgammaTr   r   r   r   r   r   tgammaR  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z__nv_roundfr6   Z
__nv_roundTr   r   r   r   r   r   round[  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )	Nr   r5   Z__nv_llroundfr   r6   Z__nv_llroundTr   r   r   r   r   r   llroundd  s    
r   c                 C   sX   t jdt | |gt dt dfdt dft dt dfdt dfid|dS )Nr   r5   Z
__nv_fdimfr6   Z	__nv_fdimTr   r   r0   r   r   r   fdimm  s    r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )	Nr   r5   Z__nv_ilogbfr   r6   Z
__nv_ilogbTr   r   r   r   r   r   ilogbv  s    
r   c                 C   sF   t jdt | gt dfdt dft dfdt dfid|dS )Nr   r5   Z
__nv_logbfr6   Z	__nv_logbTr   r   r   r   r   r   logb  s    
r   c              	   C   s0   t jdt | gt dfdt dfid|dS )Nr   r6   Z__nv_isfinitedr   Tr   r   r   r   r   r   	isfinited  s
    r   )N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)	functoolsr   Zcommon.buildr    r   	lru_cacher   externr   r   r!   r,   r-   r1   r2   r3   r4   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s&  












