§
    �Štjß  ã                   ó‚  — 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d„ eD ¦   «         Zd„ eD ¦   «         Zd„ eD ¦   «         Z ee                     ¦   «         ¦  «        Z ee                     ¦   «         ¦  «        Z ee                     ¦   «         ¦  «        Zd„ Zd„ ZdS )é    Né   )Úis_masked_tensor)Úas_masked_tensorÚmasked_tensorc                 ó€   — |€|                       ¦   «         S |                      | d¦  «                              ¦   «         S )NT)ÚallÚmasked_fill)ÚdataÚmasks     úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/masked/maskedtensor/reductions.pyÚ_masked_all_allr      s9   € Ø€|Ø�xŠx‰zŒzÐØ×Ò˜T˜E 4Ñ(Ô(×,Ò,Ñ.Ô.Ð.ó    Fc                 óŒ   — |€t          j        | ||¬¦  «        S t          j        |                      | d¦  «        ||¬¦  «        S )N©ÚdimÚkeepdimT)Útorchr   r	   )r
   r   r   r   s       r   Ú_masked_all_dimr      sG   € Ø€|ÝŒy˜ 3°Ð8Ñ8Ô8Ð8ÝŒ9�T×%Ò% t e¨TÑ2Ô2¸ÀWÐMÑMÔMÐMr   c                  ó    — t          | ¦  «        dk    r0t          |¦  «        dk    rt          | d         |d         ¬¦  «        S t          | i |¤ŽS )Nr   r   r   ©r   )Úlenr   r   )ÚargsÚkwargss     r   Ú_masked_allr      sO   € Ý
ˆ4�y„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   !   sa   € Ý�#•sÑÔð 3Ý˜T C 5¨'Ñ2Ô2Ð2Ý�C Ð&Ñ&Ô&ð 7ð 7ˆÝŒy˜ 1¨gÐ6Ñ6Ô6ˆˆØ€Kr   c                 óP   — | 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                 ó8  •— t          ‰	¦  «        }|                      ¦   «         }| j        r&|                      ¦   «                              ¦   «         n|                      ¦   «         }‰	dk    r |||¬¦  «        }�n‰	dv �r:|                      ¦   «         �r% ||                     ¦   «         |¬¦  «                             t          j        ¬¦  «        }|                      ¦   «         s&| 	                    ¦   «          
                    ¦   «         n| 
                    ¦   «         }|                     d¦  «        |         }|                     ¦   «                              ¦   «         t          j        |                     ¦   «         |j        ¬¦  «                             d¦  «        z  }t          j        ||z  ¦  «        }n@| j        r, |t%          |                     ¦   «         |¦  «        ¦  «        }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   sÑ  ø€ Ý" 2Ñ&Ô&ˆ	Ø�}Š}‰ŒˆØ+/¬>ÐNˆt�}Š}‰Œ×%Ò%Ñ'Ô'Ð'¸t¿}º}¹¼ˆð �Š;ˆ;Ø#˜) D¨tÐ4Ñ4Ô4ˆK‰KàÐ'Ð'Ñ'¨D×,>Ò,>Ñ,@Ô,@Ñ'Ø"˜ 4§;¢;¡=¤=°tÐ<Ñ<Ô<×?Ò?ÅeÄiÐ?ÑPÔPˆJð ×)Ò)Ñ+Ô+ð$�×"Ò"Ñ$Ô$×,Ò,Ñ.Ô.Ð.à—\’\‘^”^ð ð
 —.’. Ñ#Ô# JÔ/ˆCØ—Y’Y‘[”[×&Ò&Ñ(Ô(­5¬<Ø—	’	‘” D¤Kð,ñ ,ô ,çŠg�a‰jŒjñˆFõ  œ) C¨&¡LÑ1Ô1ˆKˆKð Œ^ð 	5Ø#˜)¥M°$·+²+±-´-ÀÑ$FÔ$FÑGÔGˆKˆKð $˜) D¨tÐ4Ñ4Ô4ˆKå ­U¬Y°t©_¬_Ñ=Ô=Ð=r   © )r'   rC   s   ` r   Ú_torch_reduce_allrE   /   s%   ø€ ð>ð >ð >ð >ð >ð@ Ðr   c                 ó   ‡ — dˆ fd„	}|S )NFc                 ó°  •— | j         r#d‰	› d�}t          j        |d¬¦  «         t          S t	          | ¦  «        st          d¦  «        ‚t          ‰	¦  «        }|                      ¦   «         }|                      ¦   «         }‰	dk    r |||||¬¦  «        }n" || ||||                      ¦   «         ¬¦  «        }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.é   )Ú
stacklevelz*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˜#¨!Ð,Ñ,Ô,Ð,Ý!Ð!Ý Ñ%Ô%ð 	JÝÐHÑIÔIÐIå" 2Ñ&Ô&ˆ	Ø�}Š}‰ŒˆØ�}Š}‰ŒˆØ�Š;ˆ;Ø#˜) D¨c¸7ÈÐNÑNÔNˆKˆKà#˜)Ø˜# w°eÀ$Ç-Â-Á/Ä/ðñ ô ˆKõ   ­]¸4ÀÀgÑ-NÔ-NÑOÔOÐOr   ©FNrD   )r'   rO   s   ` r   Ú_torch_reduce_dimrQ   S   s/   ø€ ðPð Pð Pð Pð Pð Pð2 Ðr   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó¶   •— t          | ¦  «        dk    r1t          |¦  «        dk    r t          ‰¦  «        | d         ¦  «        S  t          ‰¦  «        | i |¤ŽS ©Nr   r   )r   rE   rQ   )r   r   r'   s     €r   Ú	reduce_fnz _torch_reduce.<locals>.reduce_fnq   s]   ø€ Ýˆt‰9Œ9˜Š>ˆ>�c &™kœk¨QÒ.Ð.Ø(Õ$ RÑ(Ô(¨¨a¬Ñ1Ô1Ð1Ø$Õ  Ñ$Ô$ dÐ5¨fÐ5Ð5Ð5r   rD   )r'   rU   s   ` r   Ú_torch_reducerV   p   s$   ø€ ð6ð 6ð 6ð 6ð 6ð
 Ðr   c                 ó   — | |||fS ©NrD   )Úinputr   r   r-   s       r   Ú_reduce_dim_argsrZ   y   s   € Ø�#�w Ð%Ð%r   c                 ó   ‡ — ˆ fd„}|S )Nc                  óä   •— t          | ¦  «        dk    r1t          |¦  «        dk    r t          ‰¦  «        | d         ¦  «        S t          | i |¤Ž\  }}}} t          ‰¦  «        ||||¦  «        S rT   )r   rE   rZ   rQ   )r   r   rY   r   r   r-   r'   s         €r   Úgrad_reducez'_torch_grad_reduce.<locals>.grad_reduce~   sy   ø€ Ýˆt‰9Œ9˜Š>ˆ>�c &™kœk¨QÒ.Ð.Ø(Õ$ RÑ(Ô(¨¨a¬Ñ1Ô1Ð1å%5°tÐ%F¸vÐ%FÐ%FÑ"ˆˆs�G˜UØ$Õ  Ñ$Ô$ U¨C°¸%Ñ@Ô@Ð@r   rD   )r'   r]   s   ` r   Ú_torch_grad_reducer^   }   s)   ø€ ðAð Að Að Að Að Ðr   )r<   ÚmeanÚaminÚamaxr,   r+   Úprodr   ÚnormÚvarÚstdc                 óh   — i | ]/}t          t          j        j        |¦  «        t	          |¦  «        “Œ0S rD   )r$   r   ÚopsÚatenrV   ©Ú.0Únames     r   ú
<dictcomp>rl   –   s=   € ð ð ð Ø;?…G�EŒIŒN˜DÑ!Ô!¥=°Ñ#6Ô#6ðð ð r   c                 óT   — i | ]%}t          t          |¦  «        t          |¦  «        “Œ&S rD   )r$   r   r^   ri   s     r   rl   rl   ™   s:   € ð ð ð Ø7;…G�E�4ÑÔÕ,¨TÑ2Ô2ðð ð r   c                 ó^   — i | ]*}t          t          j        |¦  «        t          |¦  «        “Œ+S rD   )r$   r   ÚTensorr^   ri   s     r   rl   rl   œ   s<   € ð ð ð Ø>B…G�EŒL˜$ÑÔÕ!3°DÑ!9Ô!9ðð ð r   c                 ó8   — | t           v p| t          v p| t          v S rX   )ÚNATIVE_REDUCE_MAPÚTORCH_REDUCE_MAPÚTENSOR_REDUCE_MAPr&   s    r   Ú_is_reductionrt   ¥   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 rX   )rq   rr   rs   rL   )r'   r   r   s      r   Ú_apply_reductionrv   ©   st   € Ø	ÕÐÐÝ  Ô$ dÐ5¨fÐ5Ð5Ð5Ø	ÕÐÐÝ Ô# TÐ4¨VÐ4Ð4Ð4Ø	ÕÐÐÝ  Ô$ dÐ5¨fÐ5Ð5Ð5ÝÐr   rX   rP   )rJ   r   Úcorer   Úcreationr   r   Ú__all__r   r   r   r   r(   rE   rQ   rV   rZ   r^   ÚREDUCE_NAMESrq   rr   rs   ÚlistÚkeysÚNATIVE_REDUCE_FNSÚTORCH_REDUCE_FNSÚTENSOR_REDUCE_FNSrt   rv   rD   r   r   ú<module>r€      sæ  ðð €€€à €€€à "Ð "Ð "Ð "Ð "Ð "Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð €ð/ð /ð /ð /ðNð Nð Nð Nð,ð ,ð ,ðð ð ð%ð %ð %ð!ð !ð !ðHð ð ð:ð ð ð&ð &ð &ð &ðð ð ðð ð €ðð ØCOðñ ô Ð ðð Ø?Kðñ ô Ð ðð ØFRðñ ô Ð ð �DÐ*×/Ò/Ñ1Ô1Ñ2Ô2Ð Ø�4Ð(×-Ò-Ñ/Ô/Ñ0Ô0Ð Ø�DÐ*×/Ò/Ñ1Ô1Ñ2Ô2Ð ðXð Xð Xðð ð ð ð r   