o
    灛i9                     @   st  d dl mZ d dlmZ ddlmZ ddlmZ ddl	m
Z
 e
dZdedefd	d
ZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedd d!Zejedd"d#Zejedd$d%Zejedd&d'Zejedd(d)Zejedd*d+Zejedd,d-Zejedd.d/Zejedd0d1Z ejedd2d3Z!ejedd4d5Z"ejedd6d7Z#ejedd8d9Z$ejedd:d;Z%ejedd<d=Z&ejedd>d?Z'ejedd@dAZ(ejeddBdCZ)ejeddDdEZ*ejeddFdGZ+ejeddHdIZ,ejeddJdKZ-ejeddLdMZ.ejeddNdOZ/ejeddPdQZ0ejeddRdSZ1ejeddTdUZ2ejeddVdWZ3ejeddXdYZ4ejeddZd[Z5ejedd\d]Z6ejedd^d_Z7ejedd`daZ8ejeddbdcZ9ejeddddeZ:ejeddfdgZ;ejeddhdiZ<ejeddjdkZ=ejeddldmZ>ejeddndoZ?ejeddpdqZ@ejeddrdsZAejeddtduZBejeddvdwZCejeddxdyZDejeddzd{ZEejedd|d}ZFejedd~dZGejedddZHejedddZIejedddZJejedddZKejedddZLejedddZMejedddZNejedddZOejedddZPejedddZQejedddZRejedddZSejedddZTejedddZUejedddZVejedddZWejedddZXejedddZYejedddZZejedddZ[ejedddZ\ejedddZ]ejedddZ^ejedddZ_ejedddZ`ejedddZaejedddZbejedddZcejedddZdejedddZeejedddZfejedddZgejedddZhejedddÄZiejedddńZjejedddǄZkejedddɄZlejeddd˄Zmejeddd̈́ZnejedddτZoejedddфZpejedddӄZqejedddՄZrejedddׄZsejedddلZtejedddۄZuejeddd݄Zvejeddd߄ZwejedddZxejedddZyejedddZzejedddZ{ejedddZ|ejedddZ}ejedddZ~ejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedd dZejedddZejedddZejedddZejeddd	Zejedd
dZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedd d!Zejedd"d#Zejedd$d%Zejedd&d'Zejedd(d)Zejedd*d+Zejedd,d-Zejedd.d/Zejedd0d1Zejedd2d3Zejedd4d5Zejedd6d7Zejedd8d9Zejedd:d;Zejedd<d=Zejedd>d?Zejedd@dAZejeddBdCZejeddDdEZejeddFdGZejeddHdIZejeddJdKZejeddLdMZejeddNdOZejeddPdQZejeddRdSZejeddTdUZejeddVdWZejeddXdYZejeddZd[Zejedd\d]Zejedd^d_Zejedd`daZejeddbdcZejeddddeZejeddfdgZejeddhdiZejeddjdkZejeddldmZejeddndoZejeddpdqZejeddrdsZejeddtduZejeddvdwZejeddxdyZejeddzd{Zejedd|d}Zejedd~dZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZejedddZdS (     )	libdevice    )core)wraps)TypeVarTfnreturnc                    s$   t  sJ t  fdd}|S )z0Dispatch a function to a correct implementation.c               	      sv   |d j j}|dkrt}n|dkrt}ntdzt| j}W n ty3   td| d j dw || i |S )N_buildercudahipzunknown backend`z ` does not provide support for `z` extra function)optionsbackend_namecuda_libdevicehip_libdeviceRuntimeErrorgetattr__name__AttributeError)argskwargs_backend_curr_libdevice_module_implr    a/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/triton/language/extra/libdevice.pywrapper   s   zdispatch.<locals>.wrapper)callabler   )r   r   r   r   r   dispatch
   s   r    Nc                 C      d S Nr   arg0r
   r   r   r   clz"      r%   c                 C   r!   r"   r   r#   r   r   r   popc(   r&   r'   c                 C   r!   r"   r   r$   arg1arg2r
   r   r   r   	byte_perm.   r&   r+   c                 C   r!   r"   r   r$   r)   r
   r   r   r   mulhi4   r&   r-   c                 C   r!   r"   r   r,   r   r   r   mul24:   r&   r.   c                 C   r!   r"   r   r#   r   r   r   brev@   r&   r/   c                 C   r!   r"   r   r(   r   r   r   sadF   r&   r0   c                 C   r!   r"   r   r#   r   r   r   absL   r&   r1   c                 C   r!   r"   r   r#   r   r   r   floorR   r&   r2   c                 C   r!   r"   r   r#   r   r   r   rcp64hX   r&   r3   c                 C   r!   r"   r   r#   r   r   r   rsqrt^   r&   r4   c                 C   r!   r"   r   r#   r   r   r   ceild   r&   r5   c                 C   r!   r"   r   r#   r   r   r   truncj   r&   r6   c                 C   r!   r"   r   r#   r   r   r   exp2p   r&   r7   c                 C   r!   r"   r   r#   r   r   r   	saturatefv   r&   r8   c                 C   r!   r"   r   r(   r   r   r   fma_rn|   r&   r9   c                 C   r!   r"   r   r(   r   r   r   fma_rz   r&   r:   c                 C   r!   r"   r   r(   r   r   r   fma_rd   r&   r;   c                 C   r!   r"   r   r(   r   r   r   fma_ru   r&   r<   c                 C   r!   r"   r   r,   r   r   r   fast_dividef   r&   r=   c                 C   r!   r"   r   r,   r   r   r   div_rn   r&   r>   c                 C   r!   r"   r   r,   r   r   r   div_rz   r&   r?   c                 C   r!   r"   r   r,   r   r   r   div_rd   r&   r@   c                 C   r!   r"   r   r,   r   r   r   div_ru   r&   rA   c                 C   r!   r"   r   r#   r   r   r   rcp_rn   r&   rB   c                 C   r!   r"   r   r#   r   r   r   rcp_rz   r&   rC   c                 C   r!   r"   r   r#   r   r   r   rcp_rd   r&   rD   c                 C   r!   r"   r   r#   r   r   r   rcp_ru   r&   rE   c                 C   r!   r"   r   r#   r   r   r   sqrt_rn   r&   rF   c                 C   r!   r"   r   r#   r   r   r   sqrt_rz   r&   rG   c                 C   r!   r"   r   r#   r   r   r   sqrt_rd   r&   rH   c                 C   r!   r"   r   r#   r   r   r   sqrt_ru   r&   rI   c                 C   r!   r"   r   r#   r   r   r   sqrt   r&   rJ   c                 C   r!   r"   r   r,   r   r   r   add_rn   r&   rK   c                 C   r!   r"   r   r,   r   r   r   add_rz   r&   rL   c                 C   r!   r"   r   r,   r   r   r   add_rd   r&   rM   c                 C   r!   r"   r   r,   r   r   r   add_ru   r&   rN   c                 C   r!   r"   r   r,   r   r   r   mul_rn   r&   rO   c                 C   r!   r"   r   r,   r   r   r   mul_rz  r&   rP   c                 C   r!   r"   r   r,   r   r   r   mul_rd  r&   rQ   c                 C   r!   r"   r   r,   r   r   r   mul_ru  r&   rR   c                 C   r!   r"   r   r#   r   r   r   double2float_rn  r&   rS   c                 C   r!   r"   r   r#   r   r   r   double2float_rz  r&   rT   c                 C   r!   r"   r   r#   r   r   r   double2float_rd$  r&   rU   c                 C   r!   r"   r   r#   r   r   r   double2float_ru*  r&   rV   c                 C   r!   r"   r   r#   r   r   r   double2int_rn0  r&   rW   c                 C   r!   r"   r   r#   r   r   r   double2int_rz6  r&   rX   c                 C   r!   r"   r   r#   r   r   r   double2int_rd<  r&   rY   c                 C   r!   r"   r   r#   r   r   r   double2int_ruB  r&   rZ   c                 C   r!   r"   r   r#   r   r   r   double2uint_rnH  r&   r[   c                 C   r!   r"   r   r#   r   r   r   double2uint_rzN  r&   r\   c                 C   r!   r"   r   r#   r   r   r   double2uint_rdT  r&   r]   c                 C   r!   r"   r   r#   r   r   r   double2uint_ruZ  r&   r^   c                 C   r!   r"   r   r#   r   r   r   int2double_rn`  r&   r_   c                 C   r!   r"   r   r#   r   r   r   uint2double_rnf  r&   r`   c                 C   r!   r"   r   r#   r   r   r   float2int_rnl  r&   ra   c                 C   r!   r"   r   r#   r   r   r   float2int_rzr  r&   rb   c                 C   r!   r"   r   r#   r   r   r   float2int_rdx  r&   rc   c                 C   r!   r"   r   r#   r   r   r   float2int_ru~  r&   rd   c                 C   r!   r"   r   r#   r   r   r   float2uint_rn  r&   re   c                 C   r!   r"   r   r#   r   r   r   float2uint_rz  r&   rf   c                 C   r!   r"   r   r#   r   r   r   float2uint_rd  r&   rg   c                 C   r!   r"   r   r#   r   r   r   float2uint_ru  r&   rh   c                 C   r!   r"   r   r#   r   r   r   int2float_rn  r&   ri   c                 C   r!   r"   r   r#   r   r   r   int2float_rz  r&   rj   c                 C   r!   r"   r   r#   r   r   r   int2float_rd  r&   rk   c                 C   r!   r"   r   r#   r   r   r   int2float_ru  r&   rl   c                 C   r!   r"   r   r#   r   r   r   uint2float_rn  r&   rm   c                 C   r!   r"   r   r#   r   r   r   uint2float_rz  r&   rn   c                 C   r!   r"   r   r#   r   r   r   uint2float_rd  r&   ro   c                 C   r!   r"   r   r#   r   r   r   uint2float_ru  r&   rp   c                 C   r!   r"   r   r,   r   r   r   hiloint2double  r&   rq   c                 C   r!   r"   r   r#   r   r   r   double2loint  r&   rr   c                 C   r!   r"   r   r#   r   r   r   double2hiint  r&   rs   c                 C   r!   r"   r   r#   r   r   r   float2ll_rn  r&   rt   c                 C   r!   r"   r   r#   r   r   r   float2ll_rz  r&   ru   c                 C   r!   r"   r   r#   r   r   r   float2ll_rd  r&   rv   c                 C   r!   r"   r   r#   r   r   r   float2ll_ru  r&   rw   c                 C   r!   r"   r   r#   r   r   r   float2ull_rn  r&   rx   c                 C   r!   r"   r   r#   r   r   r   float2ull_rz  r&   ry   c                 C   r!   r"   r   r#   r   r   r   float2ull_rd  r&   rz   c                 C   r!   r"   r   r#   r   r   r   float2ull_ru  r&   r{   c                 C   r!   r"   r   r#   r   r   r   double2ll_rn  r&   r|   c                 C   r!   r"   r   r#   r   r   r   double2ll_rz  r&   r}   c                 C   r!   r"   r   r#   r   r   r   double2ll_rd  r&   r~   c                 C   r!   r"   r   r#   r   r   r   double2ll_ru   r&   r   c                 C   r!   r"   r   r#   r   r   r   double2ull_rn&  r&   r   c                 C   r!   r"   r   r#   r   r   r   double2ull_rz,  r&   r   c                 C   r!   r"   r   r#   r   r   r   double2ull_rd2  r&   r   c                 C   r!   r"   r   r#   r   r   r   double2ull_ru8  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2float_rn>  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2float_rzD  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2float_rdJ  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2float_ruP  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2float_rnV  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2float_rz\  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2float_rdb  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2float_ruh  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2double_rnn  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2double_rzt  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2double_rdz  r&   r   c                 C   r!   r"   r   r#   r   r   r   ll2double_ru  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2double_rn  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2double_rz  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2double_rd  r&   r   c                 C   r!   r"   r   r#   r   r   r   ull2double_ru  r&   r   c                 C   r!   r"   r   r#   r   r   r   int_as_float  r&   r   c                 C   r!   r"   r   r#   r   r   r   float_as_int  r&   r   c                 C   r!   r"   r   r#   r   r   r   uint_as_float  r&   r   c                 C   r!   r"   r   r#   r   r   r   float_as_uint  r&   r   c                 C   r!   r"   r   r#   r   r   r   longlong_as_double  r&   r   c                 C   r!   r"   r   r#   r   r   r   double_as_longlong  r&   r   c                 C   r!   r"   r   r#   r   r   r   	fast_sinf  r&   r   c                 C   r!   r"   r   r#   r   r   r   	fast_cosf  r&   r   c                 C   r!   r"   r   r#   r   r   r   
fast_log2f  r&   r   c                 C   r!   r"   r   r#   r   r   r   	fast_logf  r&   r   c                 C   r!   r"   r   r#   r   r   r   	fast_expf  r&   r   c                 C   r!   r"   r   r#   r   r   r   	fast_tanf  r&   r   c                 C   r!   r"   r   r#   r   r   r   fast_exp10f  r&   r   c                 C   r!   r"   r   r#   r   r   r   fast_log10f  r&   r   c                 C   r!   r"   r   r,   r   r   r   	fast_powf  r&   r   c                 C   r!   r"   r   r,   r   r   r   hadd  r&   r   c                 C   r!   r"   r   r,   r   r   r   rhadd  r&   r   c                 C   r!   r"   r   r,   r   r   r   sub_rn  r&   r   c                 C   r!   r"   r   r,   r   r   r   sub_rz
  r&   r   c                 C   r!   r"   r   r,   r   r   r   sub_rd  r&   r   c                 C   r!   r"   r   r,   r   r   r   sub_ru  r&   r   c                 C   r!   r"   r   r#   r   r   r   rsqrt_rn  r&   r   c                 C   r!   r"   r   r#   r   r   r   ffs"  r&   r   c                 C   r!   r"   r   r#   r   r   r   rint(  r&   r   c                 C   r!   r"   r   r#   r   r   r   llrint.  r&   r   c                 C   r!   r"   r   r#   r   r   r   	nearbyint4  r&   r   c                 C   r!   r"   r   r#   r   r   r   isnan:  r&   r   c                 C   r!   r"   r   r#   r   r   r   signbit@  r&   r   c                 C   r!   r"   r   r,   r   r   r   copysignF  r&   r   c                 C   r!   r"   r   r#   r   r   r   finitefL  r&   r   c                 C   r!   r"   r   r#   r   r   r   isinfR  r&   r   c                 C   r!   r"   r   r,   r   r   r   	nextafterX  r&   r   c                 C   r!   r"   r   r#   r   r   r   sin^  r&   r   c                 C   r!   r"   r   r#   r   r   r   cosd  r&   r   c                 C   r!   r"   r   r#   r   r   r   sinpij  r&   r   c                 C   r!   r"   r   r#   r   r   r   cospip  r&   r   c                 C   r!   r"   r   r#   r   r   r   tanv  r&   r   c                 C   r!   r"   r   r#   r   r   r   log2|  r&   r   c                 C   r!   r"   r   r#   r   r   r   exp  r&   r   c                 C   r!   r"   r   r#   r   r   r   exp10  r&   r   c                 C   r!   r"   r   r#   r   r   r   cosh  r&   r   c                 C   r!   r"   r   r#   r   r   r   sinh  r&   r   c                 C   r!   r"   r   r#   r   r   r   tanh  r&   r   c                 C   r!   r"   r   r,   r   r   r   atan2  r&   r   c                 C   r!   r"   r   r#   r   r   r   atan  r&   r   c                 C   r!   r"   r   r#   r   r   r   asin  r&   r   c                 C   r!   r"   r   r#   r   r   r   acos  r&   r   c                 C   r!   r"   r   r#   r   r   r   log  r&   r   c                 C   r!   r"   r   r#   r   r   r   log10  r&   r   c                 C   r!   r"   r   r#   r   r   r   log1p  r&   r   c                 C   r!   r"   r   r#   r   r   r   acosh  r&   r   c                 C   r!   r"   r   r#   r   r   r   asinh  r&   r   c                 C   r!   r"   r   r#   r   r   r   atanh  r&   r   c                 C   r!   r"   r   r#   r   r   r   expm1  r&   r   c                 C   r!   r"   r   r,   r   r   r   hypot  r&   r   c                 C   r!   r"   r   r,   r   r   r   rhypot  r&   r   c                 C   r!   r"   r   r(   r   r   r   norm3d  r&   r   c                 C   r!   r"   r   r(   r   r   r   rnorm3d  r&   r   c                 C   r!   r"   r   r$   r)   r*   arg3r
   r   r   r   norm4d  r&   r   c                 C   r!   r"   r   r   r   r   r   rnorm4d   r&   r   c                 C   r!   r"   r   r#   r   r   r   cbrt  r&   r   c                 C   r!   r"   r   r#   r   r   r   rcbrt  r&   r   c                 C   r!   r"   r   r#   r   r   r   j0  r&   r   c                 C   r!   r"   r   r#   r   r   r   j1  r&   r   c                 C   r!   r"   r   r#   r   r   r   y0  r&   r   c                 C   r!   r"   r   r#   r   r   r   y1$  r&   r   c                 C   r!   r"   r   r,   r   r   r   yn*  r&   r   c                 C   r!   r"   r   r,   r   r   r   jn0  r&   r   c                 C   r!   r"   r   r#   r   r   r   cyl_bessel_i06  r&   r   c                 C   r!   r"   r   r#   r   r   r   cyl_bessel_i1<  r&   r   c                 C   r!   r"   r   r#   r   r   r   erfB  r&   r   c                 C   r!   r"   r   r#   r   r   r   erfinvH  r&   r   c                 C   r!   r"   r   r#   r   r   r   erfcN  r&   r   c                 C   r!   r"   r   r#   r   r   r   erfcxT  r&   r   c                 C   r!   r"   r   r#   r   r   r   erfcinvZ  r&   r   c                 C   r!   r"   r   r#   r   r   r   
normcdfinv`  r&   r   c                 C   r!   r"   r   r#   r   r   r   normcdff  r&   r   c                 C   r!   r"   r   r#   r   r   r   lgammal  r&   r   c                 C   r!   r"   r   r,   r   r   r   ldexpr  r&   r   c                 C   r!   r"   r   r,   r   r   r   scalbnx  r&   r   c                 C   r!   r"   r   r,   r   r   r   fmod~  r&   r   c                 C   r!   r"   r   r,   r   r   r   	remainder  r&   r   c                 C   r!   r"   r   r(   r   r   r   fma  r&   r   c                 C   r!   r"   r   r,   r   r   r   pow  r&   r   c                 C   r!   r"   r   r#   r   r   r   tgamma  r&   r   c                 C   r!   r"   r   r#   r   r   r   round  r&   r   c                 C   r!   r"   r   r#   r   r   r   llround  r&   r   c                 C   r!   r"   r   r,   r   r   r   fdim  r&   r   c                 C   r!   r"   r   r#   r   r   r   ilogb  r&   r   c                 C   r!   r"   r   r#   r   r   r   logb  r&   r   c                 C   r!   r"   r   r#   r   r   r   	isfinited  r&   r   r"   )r   r   r   r   r   triton.languager   	functoolsr   typingr   r   r    externr%   r'   r+   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   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   <module>   s   