
    h               	       >   S SK r S SKJr  S SKJr  \ R                  S 5       r\ R                  S\R                  S\R                  4S j5       r
\ R                  S\R                  S\R                  4S j5       r\ R                  S\R                  S	\S\R                  4S
 j5       r\ R                  S\R                  S\R                  S	\S\R                  4S j5       r\ R                  S\R                  4S j5       r\ R                  S 5       rS\S\4S jrg)    N)	libdevicec                 
    X-  $ N )abs     T/home/james-whalen/.local/lib/python3.13/site-packages/cut_cross_entropy/tl_utils.pytl_and_reduce_fnr
      s	    5L    r   returnc                 .    [         R                  " U 5      $ r   )tl_libdevicetanhr   s    r	   tl_tanhr      s    Qr   c                 .    [         R                  " U 5      $ r   )r   log1pr   s    r	   tl_log1pr      s    a  r   vsoftcapc                 "    [        X-  5      U-  $ r   )r   )r   r   s     r	   tl_softcappingr      s    1;'))r   dvc                     X-  nU SX-  -
  -  $ )N   r   )r   r   r   s      r	   tl_softcapping_gradr      s    	AQUr   c                     [         R                  " X5      n[         R                  " X5      n[        [         R                  " X#-
  5      5      U-   $ r   )tlminimummaximumr   exp)r   r   minxmxs       r	   tl_logaddexpr$   !   s9    ::aD	A	BBFF49%&++r   c                    [         R                  " USS5      S:X  a   [         R                  " USS5      S:X  a  M  [         R                  " XSSS9nX-   n[         R                  " XUSS9  [         R                  " US5        g )Nr   r   g        
evict_last)maskothereviction_policy)r'   r)   )r   
atomic_casloadstoreatomic_xchg)ptrsr   r'   lock_ptrcur_vnew_vs         r	   tl_lock_addr2   (   sj    
--!Q
'1
, --!Q
'1
, GGD3MEIEHHTt\BNN8Qr   r   c                      U S:  a  gU S::  a  gg)Ni      i   r   )r   s    r	   b_bin_fnr5   4   s    Dy	
cr   )tritontriton.languagelanguager   triton.language.extrar   r   jitr
   tensorr   r   floatr   r   r$   r2   intr5   r   r   r	   <module>r>      sE     ;    ryy  RYY     !		 !bii ! ! *bii *% *BII * * BII ")) e 		  
 ,")) , ,      r   