
    hY              
       j   S SK r \ R                  " SSS9S\ R                  S\S\ R                  4S j5       rS\\-  S-  S	\ R                  S\S-  4S
 jrS\ R                  S\S\	S\ R                  S-  4S jr
S\ R                  S\ R                  S-  S\	S\ R                  S\ R                  4
S jrg)    NT)	fullgraphdynamiclogitssoftcapreturnc                 8    [         R                  " X-  5      U-  $ )N)torchtanh)r   r   s     Q/home/james-whalen/.local/lib/python3.13/site-packages/cut_cross_entropy/utils.pysoftcappingr      s    ::f&''11    
filter_epsdtypec                     U =c    g =[         S` =b  u     U $   =S:X  a$    [        R                  " U5      R                  S-  $ S:X  a#  [        R                  " U5      R                  S-  $  [	        SU  35      e)N auto    highzUnknown eps )floatr	   finfoepsRuntimeError)r   r   s     r   _handle_epsr   
   sp    
UW  ;;u%))B.. ;;u%))B..j\:;;r   targetsignore_indexshiftc                    U(       a
  U SSS 24   n OU R                  5       n X:g  R                  5       R                  [        R                  5      nU(       dL  UR                  S5      S:X  d   eUR                  5       U R                  5       :w  a  UR                  S5      $ S $ [        U R                  S-
  5       H#  nUS S 2U4==   U R                  U5      -  ss'   M%     U R                  S5      S:X  d   eUR                  S5      $ )N.   )flattennonzerotor	   int32sizenumelsqueezerangendimstridesum)r   r   r   validsis        r   _build_flat_validsr-      s    
 #qr'"//#%..033EKK@F{{1~"""$*LLNgmmo$Ev~~a O4O7<<!#$q!tq)) % >>""""::a=r   batch_shaper+   lossc                     Uc  UR                  U 5      $ UR                  U R                  5       45      nX4U(       a  US-   OU'   UR                  U 5      $ )Nr   )view	new_zerosr%   )r.   r+   r   r/   	full_losss        r   handle_reduction_noner4   4   sQ     ~yy%% 1 1 356I37evz0>>+&&r   )r	   compileTensorr   r   strr   r   intboolr-   Sizer4   r   r   r   <module>r;      s     t,2 2u 2 2 -2<ECK$. <u{{ <ut| <$\\  \\D	0	'	'%*\\D%8	'AE	'MR\\	'
\\	'r   