Ë
    [^(hÑ  ã                   ó  — d dl Z d dlZddlmZ ddlmZmZ g Zdd„Zdd„Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zdd„Zd„ Zg d¢ZeD � ci c]&  }  eej(                  j*                  | «       e| «      “Œ( c} ZeD � ci c]  }  ee| «       e| «      “Œ c} ZeD � ci c]  }  eej0                  | «       e| «      “Œ c} Z eej7                  «       «      Z eej7                  «       «      Z eej7                  «       «      Zd„ Zd„ Z yc c} w c c} w c c} w )é    Né   )Úis_masked_tensor)Úas_masked_tensorÚmasked_tensorc                 óh   — |€| j                  «       S | j                  | d«      j                  «       S )NT)ÚallÚmasked_fill)ÚdataÚmasks     úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/masked/maskedtensor/reductions.pyÚ_masked_all_allr      s1   € Ø€|Ø�x‰x‹zÐØ×Ñ˜T˜E 4Ó(×,Ñ,Ó.Ð.ó    c                 óˆ   — |€t        j                  | ||¬«      S t        j                  | j                  | d«      ||¬«      S )N©ÚdimÚkeepdimT)Útorchr   r	   )r
   r   r   r   s       r   Ú_masked_all_dimr      s<   € Ø€|Ü�y‰y˜ 3°Ô8Ð8Ü�9‰9�T×%Ñ% t e¨TÓ2¸ÀWÔMÐMr   c                  óv   — t        | «      dk(  r!t        |«      dk(  rt        | d   |d   ¬«      S t        | i |¤ŽS )Nr   r   r   ©r   )Úlenr   r   )ÚargsÚkwargss     r   Ú_masked_allr      s=   € Ü
ˆ4ƒy�A‚~œ#˜f›+¨Ò*Ü˜t A™w¨V°F©^Ô<Ð<Ü˜DÐ+ FÑ+Ð+r   c                 ó–   — t        |t        «      rt        | |g|«      S t        |d¬«      D ]  }t	        j
                  | ||¬«      } Œ | S )NT)Úreverser   )Ú
isinstanceÚintÚ_multidim_anyÚsortedr   Úany)r   r   r   Úds       r   r   r   !   sJ   € Ü�#”sÔÜ˜T C 5¨'Ó2Ð2Ü�C Ô&ò 7ˆÜ�y‰y˜ 1¨gÔ6‰ð7à€Kr   c                 óL   — | dk(  rt         S t        t        j                  | «      S )Nr   )r   Úgetattrr   Úmasked©Úfns    r   Ú_get_masked_fnr(   )   s    € Ø	ˆU‚{ÜÐÜ”5—<‘< Ó$Ð$r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó¢  •— t        ‰	«      }| j                  «       }| j                  r| j                  «       j	                  «       n| j                  «       }‰	dk(  r |||¬«      }�nJ‰	dv �r| j                  «       rþ ||j	                  «       |¬«      j                  t        j                  ¬«      }| j                  «       s|j                  «       j                  «       n|j                  «       }|j                  d«      |   }|j                  «       j                  «       t        j                  |j                  «       |j                  ¬«      j!                  d«      z  }t        j"                  ||z  «      }n7| j                  r! |t%        |j	                  «       |«      «      }n
 || |¬«      }t'        |t        j(                  |«      «      S )Nr   r   >   ÚargmaxÚargmin)Údtyper   )Údevicer   )r(   Úget_dataÚ	is_sparseÚget_maskÚvaluesÚis_sparse_cooÚtor   r   Úto_sparse_cooÚindicesÚunbindÚsizeÚnumelÚtensorr.   ÚcumprodÚsumr   r   r!   )
ÚselfÚ	masked_fnr
   r   Úresult_dataÚ
sparse_idxr6   ÚidxÚstrider'   s
            €r   Ú
reduce_allz%_torch_reduce_all.<locals>.reduce_all0   sb  ø€ Ü" 2Ó&ˆ	Ø�}‰}‹ˆØ+/¯>ª>ˆt�}‰}‹×%Ñ%Ô'¸t¿}¹}»ˆð �Š;Ù# D¨tÔ4ŠKàÐ'Ò'¨D×,>Ñ,>Ô,@Ù" 4§;¡;£=°tÔ<×?Ñ?ÄeÇiÁiÐ?ÓPˆJð ×)Ñ)Ô+ð ×"Ñ"Ó$×,Ñ,Ô.à—\‘\“^ð ð
 —.‘. Ó# JÑ/ˆCØ—Y‘Y“[×&Ñ&Ó(¬5¯<©<Ø—	‘	“ D§K¡Kô,ç‰g�a‹jñˆFô  Ÿ)™) C¨&¡LÓ1‰Kð �^Š^Ù#¤M°$·+±+³-ÀÓ$FÓG‰Kñ $ D¨tÔ4ˆKä ¬U¯Y©Y°t«_Ó=Ð=r   © )r'   rC   s   ` r   Ú_torch_reduce_allrE   /   s   ø€ ô>ð@ Ðr   c                 ó   ‡ — dˆ fd„	}|S )Nc                 óh  •— | j                   r!d‰	› d�}t        j                  |«       t        S t	        | «      st        d«      ‚t        ‰	«      }| j                  «       }| j                  «       }‰	dk(  r |||||¬«      }n || |||| j                  «       ¬«      }t        |t        |||«      «      S )NzThe sparse version of aa   is not implemented in reductions.
If you would like this operator to be supported, please file an issue for a feature request at https://github.com/pytorch/maskedtensor/issues with a minimal reproducible code snippet.
In the case that the semantics for the operator are not trivial, it would be appreciated to also include a proposal for the semantics.z*Input to reduce_dim must be a MaskedTensorr   )r   r   r   )r   r   r-   r   )r0   ÚwarningsÚwarnÚNotImplementedr   Ú	TypeErrorr(   r/   r1   r   r   )
r=   r   r   r-   Úmsgr>   r
   r   r?   r'   s
            €r   Ú
reduce_dimz%_torch_reduce_dim.<locals>.reduce_dimT   s´   ø€ Ø�>Š>à(¨¨ð -@ð @ð ô �M‰M˜#ÔÜ!Ð!Ü Ô%ÜÐHÓIÐIä" 2Ó&ˆ	Ø�}‰}‹ˆØ�}‰}‹ˆØ�Š;Ù# D¨c¸7ÈÔN‰Ká#Ø˜# w°eÀ$Ç-Á-Ã/ôˆKô   ¬]¸4ÀÀgÓ-NÓOÐOr   ©FNrD   )r'   rM   s   ` r   Ú_torch_reduce_dimrO   S   s   ø€ õPð2 Ðr   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó†   •— t        | «      dk(  r"t        |«      dk(  r t        ‰«      | d   «      S  t        ‰«      | i |¤ŽS ©Nr   r   )r   rE   rO   )r   r   r'   s     €r   Ú	reduce_fnz _torch_reduce.<locals>.reduce_fnq   sH   ø€ Üˆt‹9˜Š>œc &›k¨QÒ.Ø(Ô$ RÓ(¨¨a©Ó1Ð1Ø$Ô  Ó$ dÐ5¨fÑ5Ð5r   rD   )r'   rS   s   ` r   Ú_torch_reducerT   p   s   ø€ ô6ð
 Ðr   c                 ó   — | |||fS ©NrD   )Úinputr   r   r-   s       r   Ú_reduce_dim_argsrX   y   s   € Ø�#�w Ð%Ð%r   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó¬   •— t        | «      dk(  r"t        |«      dk(  r t        ‰«      | d   «      S t        | i |¤Ž\  }}}} t        ‰«      ||||«      S rR   )r   rE   rX   rO   )r   r   rW   r   r   r-   r'   s         €r   Úgrad_reducez'_torch_grad_reduce.<locals>.grad_reduce~   sa   ø€ Üˆt‹9˜Š>œc &›k¨QÒ.Ø(Ô$ RÓ(¨¨a©Ó1Ð1ä%5°tÐ%F¸vÑ%FÑ"ˆˆs�G˜UØ$Ô  Ó$ U¨C°¸%Ó@Ð@r   rD   )r'   r[   s   ` r   Ú_torch_grad_reducer\   }   s   ø€ ôAð Ðr   )r<   ÚmeanÚaminÚamaxr,   r+   Úprodr   ÚnormÚvarÚstdc                 ó:   — | t         v xs | t        v xs | t        v S rV   )ÚNATIVE_REDUCE_MAPÚTORCH_REDUCE_MAPÚTENSOR_REDUCE_MAPr&   s    r   Ú_is_reductionrh   ¥   s$   € ØÔ"Ð"ÒW bÔ,<Ð&<ÒWÀÔFWÐ@WÐWr   c                 ó’   — | t         v rt        |    |i |¤ŽS | t        v rt        |    |i |¤ŽS | t        v rt        |    |i |¤ŽS t        S rV   )re   rf   rg   rJ   )r'   r   r   s      r   Ú_apply_reductionrj   ©   sb   € Ø	ÔÑÜ  Ñ$ dÐ5¨fÑ5Ð5Ø	ÔÑÜ Ñ# TÐ4¨VÑ4Ð4Ø	ÔÑÜ  Ñ$ dÐ5¨fÑ5Ð5ÜÐr   rV   rN   )!rH   r   Úcorer   Úcreationr   r   Ú__all__r   r   r   r   r(   rE   rO   rT   rX   r\   ÚREDUCE_NAMESr$   ÚopsÚatenre   rf   ÚTensorrg   ÚlistÚkeysÚNATIVE_REDUCE_FNSÚTORCH_REDUCE_FNSÚTENSOR_REDUCE_FNSrh   rj   )Únames   0r   ú<module>rx      s?  ðó ã å "ß 5ð €ó/óNò,òò%ò!òHò:ó&òò€ð DPöØ;?�GˆE�I‰I�N‰N˜DÓ!¡=°Ó#6Ñ6òÐ ð @LöØ7;�GˆE�4ÓÑ,¨TÓ2Ñ2òÐ ð GSöØ>B�GˆE�L‰L˜$ÓÑ!3°DÓ!9Ñ9òÐ ñ Ð*×/Ñ/Ó1Ó2Ð ÙÐ(×-Ñ-Ó/Ó0Ð ÙÐ*×/Ñ/Ó1Ó2Ð òXóùò'ùòùòs   Á+C?Á4DÂ!D	