ó
    !Eñix  ã                   óð  • 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     Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/masked/maskedtensor/binary.pyÚ_get_at_least_one_maskr6   K   s^   € Ü˜A×ÑÔ'7¸×':Ñ':ÜÐLÓMÐMÜ˜×ÑÜÐ;Ó<Ð<Ü˜×ÑØ�z‰z‹|ÐØ�:‰:‹<Ðó    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    X•S   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                  " X½U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XÜ5      nOU " U6 nU(       a  US   R'                  XçS   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óð ñ ô ˜˜b˜q˜Ö"ÜØ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™<×.Ñ.Ó0ˆI�a‰Là�a‰L× Ñ Ó"ˆØ˜‰|× Ñ Ó"ˆØ  ‘|×*Ñ*Ó,ˆ	�!‰Ù�	ˆNˆÜ×-Ò-¨a°DÓ9Šà	œ×)Ñ)Ó	)Þä˜y¨™|×8Ñ8Ó:¸IÀa¹L×<UÑ<UÓ<W×XÑXÜ"Ø˜a‘L×,Ñ,Ó.°	¸!±×0HÑ0HÓ0J÷ñ ô !Øróð ð % Q™<×.Ñ.Ó0ˆI�a‰Là˜‰|×(Ñ(Ó*ˆØ˜‰l×&Ñ&Ó(ˆØ˜‰|× Ñ Ó"ˆØ  ‘|×*Ñ*Ó,ˆ	�!‰Ù�	ˆNˆÜ×-Ò-¨d°C¸ÓA‰ñ ˜)�nˆæØˆQ‰×Ñ˜{°a©LÔ9Ø�A‰wˆä,¨d°2°A¨hÐ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   € ØÔ"Ñ"×E bÔ,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Ð5¨fÑ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6òXòñ DPóÚCO¸4�GˆE�I‰I�N‰N˜DÓ!¡=°Ó#6Ò6Á<ñÐ ñ
 %óâ$ˆñ ˆE�I‰I�N‰N˜DÓ!Ñ#8¸Ó#>Ò>Ù$ñÐ ñ
 Ð*×/Ñ/Ó1Ó2Ð Ù Ð!:×!?Ñ!?Ó!AÓBÐ òFóùòWùòvùòs   ®C)Á.C.Â.C3