
    JThx                        S SK r SSKJrJrJrJrJr  / r/ SQr\	" \
" \5      1 Sk-
  5       V s/ s H  n U S-   PM
     sn rS rS rS	 rS
 r\ Vs0 s H'  n\" \ R"                  R$                  U5      \" U5      _M)     snr\ Vs0 s H'  n\" \ R"                  R$                  U5      \" U5      _M)     snr\	" \R+                  5       5      r\	" \R+                  5       5      rS rS rgs  sn f s  snf s  snf )    N   )_map_mt_args_kwargs_masks_match_tensors_match_wrap_resultis_masked_tensor)$addatan2arctan2bitwise_and
bitwise_orbitwise_xorbitwise_left_shiftbitwise_right_shiftdivdividefloor_dividefmod	logaddexp
logaddexp2mulmultiply	nextafter	remaindersubsubtracttrue_divideeqnelegegreatergreater_equalgt
less_equalltlessmaximumminimumfmaxfmin	not_equal>   r*   r+   equalr(   r)   r   r   _c                     [        U 5      (       d  [        U5      (       d  [        S5      e[        X5      (       d  [        S5      e[        U 5      (       a  U R	                  5       $ UR	                  5       $ )Nz2At least one of `a` and `b` must be a MaskedTensorz a and b must have matching masks)r   	TypeErrorr   
ValueErrorget_mask)abs     X/var/www/auris/envauris/lib/python3.13/site-packages/torch/masked/maskedtensor/binary.py_get_at_least_one_maskr6   K   s^    A'7':':LMM;<<zz|::<    c                    [        U5      S:w  a  [        S5      eUSS   H)  n[        R                  " U5      (       d  M   [	        S5      e   [        US S 6 (       d  [        S5      e[        XS 5      u  pV[        XS 5      u  pxUS   R                  n	[        R                  " US   5      =(       d    [        US   5      =(       a    XS   R                  :H  n
U	[        R                  :X  a  U
(       a  [        US   R                  5       US   R                  5       5      (       d  [        S	5      eUS   R                  5       US   R                  5       :w  a  [        S
5      eUS   R                  5       US'   US   R                  5       nUS   R                  5       nUS   R                  5       US'   U " U6 n[        R                  " XU5      nGOU	[        R                  :X  a  U
(       a  [        US   R!                  5       US   R!                  5       5      (       a3  [        US   R#                  5       US   R#                  5       5      (       d  [        S5      eUS   R                  5       US'   US   R!                  5       nUS   R#                  5       nUS   R                  5       nUS   R                  5       US'   U " U6 n[        R$                  " UUX5      nOU " U6 nU(       a  US   R'                  XS   5        US   $ [)        US S 6 nU	[        R*                  :X  a  UR-                  U5      n[/        UU5      $ )Nr   zlen(kwargs) must equal 0   zRMaskedTensor binary ops do not support Tensor arguments aside from the lhs and rhszUInput masks must match. If you need support for this, please open an issue on Github.c                 "    U R                  5       $ N)get_dataxs    r5   <lambda> _binary_helper.<locals>.<lambda>c   
    !**,r7   c                 "    U R                  5       $ r;   )r2   r=   s    r5   r?   r@   d   rA   r7   r   z\sparse_coo indices must match. If you need support for this, please open an issue on Github.z?input1 and input2 must have the same size for binary functions.z\sparse_csr indices must match. If you need support for this, please open an issue on Github.)lenr1   torch	is_tensorr0   r   r   layoutr   
sparse_coor   indicessizevaluessparse_coo_tensor
sparse_csrcrow_indicescol_indicessparse_csr_tensor_set_data_maskr6   strided	expand_asr   )fnargskwargsinplacer3   	data_args_data_kwargs	mask_args_mask_kwargsargs0_layoutsame_layoutirI   vresult_datacrowcolresult_masks                     r5   _binary_helperrc   U   s   
6{a344!"X??1d   bq"c
 	
 2$@VWI1$@VWIQ<&&L	!%G)9)A,)G0Q<...  u'''!)A,"6"6"8)A,:N:N:PQQ r  |  "il&7&7&99 U  %Q<..0IaLaL  "|  " |**,	!	N--aD9	))	)y|88:IaL<U<U<WXX"aL,,.	!0H0H0J  !r  %Q<..0IaL|((*l&&(|  " |**,	!	N--dCA )nQ{aL9Aw,d2Ah75==(%//<KK55r7   c                 \   ^ [        [        R                  R                  U 5      mU4S jnU$ )Nc                     > [        TXSS9$ )NFrV   rc   rT   rU   rS   s     r5   	binary_fn _torch_binary.<locals>.binary_fn   s    b$>>r7   getattrrD   opsatenfn_nameri   rS   s     @r5   _torch_binaryrq      s$    		)B? r7   c                 \   ^ [        [        R                  R                  U 5      mU4S jnU$ )Nc                     > [        TXSS9$ )NTrf   rg   rh   s     r5   ri   (_torch_inplace_binary.<locals>.binary_fn   s    b$==r7   rk   ro   s     @r5   _torch_inplace_binaryru      s$    		)B> r7   c                 4    U [         ;   =(       d	    U [        ;   $ r;   )NATIVE_BINARY_FNSNATIVE_INPLACE_BINARY_FNS)rS   s    r5   _is_native_binaryry      s    ""Eb,E&EEr7   c                 r    U [         ;   a  [        U    " U0 UD6$ U [        ;   a  [        U    " U0 UD6$ [        $ r;   )rw   NATIVE_BINARY_MAPrx   NATIVE_INPLACE_BINARY_MAPNotImplemented)rS   rT   rU   s      r5   _apply_native_binaryr~      sD    	 $d5f55	&&(,d=f==r7   )rD   corer   r   r   r   r   __all__BINARY_NAMESlistsetINPLACE_BINARY_NAMESr6   rc   rq   ru   rl   rm   rn   r{   r|   keysrw   rx   ry   r~   )nnames   00r5   <module>r      s4     %T 			
	
 	
 G	
 &I6X DPCO4GEIINND!=#66< 
 %$ EIINND!#8#>>$ 
 *//12  !:!?!?!AB FWvs   C).C..C3