+
    –°³j3  ã                  óÜ  € R t ^ RIHt ^ RIt^ RIHtHtHtHt ^ RI	t	^RI
HtHt ]'       d   ^ RIHt ^RIHtHtHtHtHtHt ]! R4      t]! R4      tR	 R
 ltR R lt]R7RR/R R lll4       t]R8RR/R R lll4       t]R8RR/R R lll4       t]R9RR/R R lll4       t]R9RR/R R lll4       t]R:R R ll4       t]t ]R:R R ll4       t!]!t"]R9R R ll4       t#]R;R  R! ll4       t$]R;R" R# ll4       t%]%t&]R<RR/R$ R% lll4       t']R=RR/R& R' lll4       t(]R=RR/R( R) lll4       t)R>R* R+ llt*R>R, R- llt+]+t,R9RR/R. R/ lllt-R?R0R/R1 R2 lllt.R?R0R/R3 R4 lllt/R@R5 R6 llt0R# )Az¾Implementation of reduction operations, to be wrapped into arrays, dtypes etc
in the 'public' layer.

Anything here only deals with torch objects, e.g. "dtype" is a torch.dtype instance etc
)ÚannotationsN)ÚConcatenateÚ	ParamSpecÚTYPE_CHECKINGÚTypeVar)Ú_dtypes_implÚ_util)ÚCallable)Ú	ArrayLikeÚAxisLikeÚ	DTypeLikeÚKeepDimsÚNotImplementedTypeÚOutArrayÚ_PÚ_Rc               ó    € V ^8„  d   QhRRRR/# )é   Úfuncz5Callable[Concatenate[torch.Tensor, AxisLike, _P], _R]Úreturn© )Úformats   "Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_numpy/_reductions_impl.pyÚ__annotate__r   "   s   € ÷ ñ Ø
?ðà:ñó    c                óP   a € \         P                  ! S 4      RR V 3R lll4       pV# )zŠ
Generically handle axis arguments in reductions.
axis is *always* the 2nd arg in the function so no need to have a look at its signature
c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úaútorch.TensorÚaxisr   Úargsz_P.argsÚkwdsz	_P.kwargsr   r   r   )r   s   "r   r   Ú'_deco_axis_expand.<locals>.__annotate__+   s4   € ÷ ,ñ ,Øð,Ø'ð,Ø7>ð,ØHQð,à	ñ,r   c                óÜ   <€ Ve!   \         P                  ! WP                  4      pVR8X  d6   \         P                  ! V P                  ^ R7      pV P                  V4      p RpS! W.VO5/ VB # )N©r   r   ©é    )r   Únormalize_axis_tupleÚndimÚexpand_shapeÚshapeÚreshape)r   r   r    r!   Únewshaper   s   &&*, €r   ÚwrappedÚ"_deco_axis_expand.<locals>.wrapped*   sf   ø€ ð ÒÜ×-Ò-¨d·F±FÓ;ˆDà�2Œ:ô ×)Ò)¨!¯'©'¸Ô:ˆHØ—	‘	˜(Ó#ˆAØˆDá�AÐ+˜dÒ+ dÑ+Ð+r   ©N)Ú	functoolsÚwraps)r   r-   s   f r   Ú_deco_axis_expandr2   "   s,   ø€ ô ‡_‚_�TÓ÷,ñ ,ó ð,ð €Nr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Údtypeztorch.dtype | NoneÚother_dtypeztorch.dtyper   r   )r   s   "r   r   r   =   s"   € ÷ ñ Ð,ð ¸;ð È;ñ r   c                ó˜   € V f   Tp V P                   '       g2   V P                  '       g    \        P                  ! 4       P                  # V # )a  Return a dtype that is real or complex floating-point.

For inputs that are boolean or integer dtypes, this returns the default
float dtype; inputs that are complex get converted to the default complex
dtype; real floating-point dtypes (`float*`) get passed through unchanged
)Úis_floating_pointÚ
is_complexr   Údefault_dtypesÚfloat_dtype)r4   r5   s   &&r   Ú_atleast_floatr;   =   s?   € ð ‚}ØˆØ×#×#Ð# u×'7×'7Ð'7Ü×*Ò*Ó,×8Ñ8Ð8Ø€Lr   ÚkeepdimsFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r   r
   r   r   r<   r   r   r   r   )r   s   "r   r   r   L   s,   € ÷ !ñ !Øð!Ø ð!Ø6>ð!àñ!r   c               ó$   € V P                  V4      # r/   )Úcount_nonzero)r   r   r<   s   &&$r   r?   r?   K   s   € ð �?‰?˜4Ó Ð r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# ©r   r   r
   r   r   ÚoutúOutArray | Noner<   r   r   r   r   )r   s   "r   r   r   S   ó:   € ÷ !ñ !Øð!à
ð!ð 
ð!ð
 ð!ð ñ!r   c               ó4  € V P                  4       '       d   \        R V P                   R24      h\        P                  ! V4      pV P                  \
        P                  8X  d    V P                  \
        P                  4      p \
        P                  ! W4      # )zargmax with dtype=Ú.)
r8   ÚNotImplementedErrorr4   r   Úallow_only_single_axisÚtorchÚboolÚtoÚuint8Úargmax©r   r   rB   r<   s   &&&$r   rM   rM   R   ói   € ð 	‡|�|‡~‚~Ü!Ð$6°q·w±w°i¸qÐ"AÓBÐBä×'Ò'¨Ó-€Dà‡w�w”%—*‘*Ôà�D‰D”—‘Óˆä�<Š<˜Ó Ð r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# rA   r   )r   s   "r   r   r   g   rD   r   c               ó4  € V P                  4       '       d   \        R V P                   R24      h\        P                  ! V4      pV P                  \
        P                  8X  d    V P                  \
        P                  4      p \
        P                  ! W4      # )zargmin with dtype=rF   )
r8   rG   r4   r   rH   rI   rJ   rK   rL   ÚargminrN   s   &&&$r   rR   rR   f   rO   r   Úwherec               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# ©r   r   r
   r   r   rB   rC   r<   r   rS   r   r   r   r   )r   s   "r   r   r   {   óL   € ÷ 	Dñ 	DØð	Dà
ð	Dð 
ð	Dð ð		Dð ð	Dð ñ	Dr   c               ó�   € \         P                  ! V4      pVf   \        P                  ! V 4      # \        P                  ! WR7      # ©N)Údim)r   rH   rI   Úany©r   r   rB   r<   rS   s   &&&&$r   rZ   rZ   z   ó4   € ô ×'Ò'¨Ó-€DØš<Œ5�9Š9�Q‹<ÐC¬U¯YªY°qÔ-CÐCr   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# rU   r   )r   s   "r   r   r   ˆ   rV   r   c               ó�   € \         P                  ! V4      pVf   \        P                  ! V 4      # \        P                  ! WR7      # rX   )r   rH   rI   Úallr[   s   &&&&$r   r_   r_   ‡   r\   r   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RR
RR/# ©r   r   r
   r   r   rB   rC   r<   r   Úinitialr   rS   r   r   r   )r   s   "r   r   r   •   óN   € ÷ 6ñ 6Øð6à
ð6ð 
ð6ð ð	6ð
  ð6ð ð6ð ñ6r   c                ó¨   € V P                  4       '       d   \        R V P                   24      hVf   V P                  4       # V P                  V4      # )zamax with dtype=)r8   rG   r4   Úamax©r   r   rB   r<   rb   rS   s   &&&&&&r   re   re   ”   óC   € ð 	‡|�|‡~‚~Ü!Ð$4°Q·W±W°IÐ">Ó?Ð?à’|ˆ1�6‰6‹8Ð5¨¯©°«Ð5r   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RR
RR/# ra   r   )r   s   "r   r   r   §   rc   r   c                ó¨   € V P                  4       '       d   \        R V P                   24      hVf   V P                  4       # V P                  V4      # )zamin with dtype=)r8   rG   r4   Úaminrf   s   &&&&&&r   rj   rj   ¦   rg   r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# rA   r   )r   s   "r   r   r   ¹   s:   € ÷ ñ Øðà
ðð 
ðð ð	ð
 ñr   c                ó¦   € Vf   V P                  4       MV P                  V4      pVf   V P                  4       MV P                  V4      pWE,
          # r/   )re   rj   )r   r   rB   r<   re   rj   s   &&&&  r   Úptprm   ¸   s>   € ð ’|ˆ1�6‰6Œ8¨¯©°«€DØ’|ˆ1�6‰6Œ8¨¯©°«€DØ�;Ðr   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# ©r   r   r
   r   r   r4   úDTypeLike | NonerB   rC   r<   r   rb   r   rS   r   r   r   )r   s   "r   r   r   Å   sX   € ÷ (ñ (Øð(à
ð(ð ð(ð 
ð	(ð
 ð(ð  ð(ð ð(ð ñ(r   c                óD  € VeB   \        V\        P                  4      '       g"   \        R\	        V4      P
                   24      hV\        P                  8X  d    \        P                  ! 4       P                  pVf   V P                  VR7      # V P                  WR7      # )Nz)dtype must be None or a torch.dtype, got ©r4   ©rY   r4   )Ú
isinstancerI   r4   ÚAssertionErrorÚtypeÚ__name__rJ   r   r9   Ú	int_dtypeÚsum©r   r   r4   rB   r<   rb   rS   s   &&&&&&&r   ry   ry   Ä   s…   € ð Ò¤¨E´5·;±;×!?Ò!?ÜØ7¼¸U»×8LÑ8LÐ7MÐNó
ð 	
ð ”—
‘
ÔÜ×+Ò+Ó-×7Ñ7ˆà‚|Ø�u‰u˜5ˆuÓ!Ð!Ø�5‰5�Tˆ5Ó'Ð'r   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# ro   r   )r   s   "r   r   r   Ü   sX   € ÷ )ñ )Øð)à
ð)ð ð)ð 
ð	)ð
 ð)ð  ð)ð ð)ð ñ)r   c                óæ   € \         P                  ! V4      pV\        P                  8X  d    \        P
                  ! 4       P                  pVf   V P                  VR7      # V P                  WR7      # ©Nrr   rs   )r   rH   rI   rJ   r   r9   rx   Úprodrz   s   &&&&&&&r   r~   r~   Û   s[   € ô ×'Ò'¨Ó-€Dà”—
‘
ÔÜ×+Ò+Ó-×7Ñ7ˆà‚|Ø�v‰v˜EˆvÓ"Ð"Ø�6‰6�dˆ6Ó(Ð(r   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r   r   r
   r   r   r4   rp   rB   rC   r<   r   rS   r   r   r   r   )r   s   "r   r   r   ó   sN   € ÷ )ñ )Øð)à
ð)ð ð)ð 
ð	)ð
 ð)ð ð)ð ñ)r   c               ó|   € \        W P                  4      pVf   V P                  VR7      # V P                  WR7      # r}   )r;   r4   Úmean)r   r   r4   rB   r<   rS   s   &&&&&$r   r�   r�   ò   s9   € ô ˜5§'¡'Ó*€Eà‚|Ø�v‰v˜EˆvÓ"Ð"Ø�6‰6�dˆ6Ó(Ð(r   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# ©r   r   r
   r   r   r4   rp   rB   rC   ÚddofÚfloatr<   r   rS   r   r   r   r   )r   s   "r   r   r     óX   € ÷ 2ñ 2Øð2à
ð2ð ð2ð 
ð	2ð
 ð2ð ð2ð ð2ð ñ2r   c               ó¬   € Tp\        W P                  4      p\        P                  ! W4      pVP	                  WR 7      p	\        P                  ! W—4      # ©)rY   Ú
correction)r;   r4   r   Úcast_if_neededÚstd©
r   r   r4   rB   r„   r<   rS   Úin_dtypeÚtensorÚresults
   &&&&&&$   r   r‹   r‹     óH   € ð €HÜ˜5§'¡'Ó*€EÜ×!Ò! !Ó+€FØ�Z‰Z˜DˆZÓ2€FÜ×Ò Ó1Ð1r   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# rƒ   r   )r   s   "r   r   r     r†   r   c               ó¬   € Tp\        W P                  4      p\        P                  ! W4      pVP	                  WR 7      p	\        P                  ! W—4      # rˆ   )r;   r4   r   rŠ   ÚvarrŒ   s
   &&&&&&$   r   r“   r“     r�   r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# ©r   r   r
   r   r   r4   rp   rB   rC   r   r   r   )r   s   "r   r   r   ,  s:   € ÷ ,ñ ,Øð,à
ð,ð ð,ð 
ð	,ð
 ñ,r   c                ó$  € V\         P                  8X  d    \        P                  ! 4       P                  pVf   V P
                  p\        P                  ! WR7      w  w  r\        P                  ! WP                  4      pV P                  WR7      # ©Nr$   )r   r4   )rI   rJ   r   r9   rx   r4   r   Úaxis_none_flattenÚnormalize_axis_indexr(   Úcumsum©r   r   r4   rB   s   &&&&r   rš   rš   ,  so   € ð ”—
‘
ÔÜ×+Ò+Ó-×7Ñ7ˆØ‚}Ø—‘ˆô ×(Ò(¨Ô6�J�D€QÜ×%Ò% d¯F©FÓ3€Dð �8‰8˜ˆ8Ó+Ð+r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# r•   r   )r   s   "r   r   r   @  s:   € ÷ -ñ -Øð-à
ð-ð ð-ð 
ð	-ð
 ñ-r   c                ó$  € V\         P                  8X  d    \        P                  ! 4       P                  pVf   V P
                  p\        P                  ! WR7      w  w  r\        P                  ! WP                  4      pV P                  WR7      # r—   )rI   rJ   r   r9   rx   r4   r   r˜   r™   r(   Úcumprodr›   s   &&&&r   rž   rž   @  so   € ð ”—
‘
ÔÜ×+Ò+Ó-×7Ñ7ˆØ‚}Ø—‘ˆô ×(Ò(¨Ô6�J�D€QÜ×%Ò% d¯F©FÓ3€Dð �9‰9˜$ˆ9Ó,Ð,r   c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r   r   r
   r   ú
int | NoneÚweightszArrayLike | NoneÚreturnedrJ   r<   r   z0torch.Tensor | tuple[torch.Tensor, torch.Tensor]r   )r   s   "r   r   r   W  sD   € ÷ 1ñ 1Øð1à
ð1ð ð1ð ð	1ð ð1ð 6ñ1r   c               ó  € VfS   \        W4      p\        P                  ! V P                  4       VP                  4       ,          VP                  R7      pEM5V P                  P
                  '       g   V P                  4       p V P                  VP                  8w  d±   Vf   \        R4      hVP                  ^8w  d   \        R4      hVP                  ^ ,          V P                  V,          8w  d   \        R4      h\        P                  ! W P                  ^,
          R,          VP                  ,           4      pVP                  RV4      p\        P                  ! W4      p\        W,          WR7      p\        W!VR7      pW†,          pV'       d"   \         P"                  ! WQV P                  4      pV'       dM   VP                  VP                  8w  d/   \        P                  ! WeP                  4      P%                  4       pWV3# V# )Nrr   z;Axis must be specified when shapes of a and weights differ.z81D weights expected when shapes of a and weights differ.z5Length of weights not compatible with specified axis.)é   éÿÿÿÿ)r�   rI   Ú	as_tensorÚnumelr4   r7   Údoubler*   Ú	TypeErrorr(   Ú
ValueErrorÚbroadcast_toÚswapaxesr   Úresult_type_implry   r   Úapply_keepdimsÚclone)	r   r   r¡   r¢   r<   r�   ÚwsumÚresult_dtypeÚ	numerators	   &&&&$    r   Úaverager³   W  sˆ  € ð ‚Ü�a“ˆÜ�Š˜qŸw™w›y¨6¯<©<«>Õ9ÀÇÁÔNŠà�w‰w×(×(Ð(Ø—‘“
ˆAð �7‰7�g—m‘mÔ#ØŠ|ÜØQóð ð �|‰|˜qÔ ÜØNóð ð �}‰}˜QÕ 1§7¡7¨4¥=Ô0Ü ØKóð ô
 ×(Ò(¨·6±6¸Aµ:ÀÕ2EÈÏÉÕ2UÓVˆGØ×&Ñ& r¨4Ó0ˆGô $×4Ò4°QÓ@ˆÜ˜� TÔ>ˆ	Ü�7¨Ô5ˆØÕ!ˆ÷ Ü×%Ò% f°A·F±FÓ;ˆçØ�:‰:˜Ÿ™Ô%Ü×%Ò% d¯L©LÓ9×?Ñ?ÓAˆDØˆ|Ðàˆr   Úinterpolationc               ó<   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRR/	# ©r   r   r
   Úqr   r   rB   rC   Úoverwrite_inputrJ   ÚmethodÚstrr<   r   r´   r   r   r   r   )r   s   "r   r   r   Œ  sb   € ÷ (<ñ (<Øð(<àð(<ð ð(<ð 
ð	(<ð
 ð(<ð ð(<ð ð(<ð &ð(<ð ñ(<r   c               óR  € V'       d    V P                   P                  '       g1   \        P                  ! 4       P                  pV P                  V4      p V P                   \        P                  8X  d    V P                  \        P                  4      p Vf$   V P                  4       p VP                  4       pRpM \        P                  ! W P                  4      p\        P                  ! V4      p\        P                  ! WP                   4      p\        P                  ! WW%R7      # )N)r´   r%   )r4   r7   r   r9   r:   rK   rI   Úfloat16Úfloat32Úflattenr   r'   r(   rH   rŠ   Úquantile)	r   r·   r   rB   r¸   r¹   r<   r´   r4   s	   &&&&&&&$ r   r¿   r¿   Œ  sÌ   € ÷ ð
 	à�7‰7×$×$Ð$Ü×+Ò+Ó-×9Ñ9ˆØ�D‰D�‹Kˆð 	‡w�w”%—-‘-ÔØ�D‰D”—‘Óˆà‚|Ø�I‰I‹KˆØ�I‰I‹KˆØ‰ä×)Ò)¨$·±Ó7ˆô
 ×'Ò'¨Ó-€Dä×Ò˜Q§¡Ó(€Aä�>Š>˜! Ô;Ð;r   c               ó<   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRR/	# r¶   r   )r   s   "r   r   r   ·  sb   € ÷ ñ Øðàðð ðð 
ð	ð
 ðð ðð ðð &ðð ñr   c          
     óä   € \         P                  ! VP                  4      \        J d/   VP	                  \         P
                  ! 4       P                  4      pVR ,          p\        V VVVVVVR7      # )g      Y@)r   r¸   r¹   r<   r´   )r   Úpython_type_for_torchr4   ÚintrK   r9   r:   r¿   )	r   r·   r   rB   r¸   r¹   r<   r´   Úqqs	   &&&&&&&$ r   Ú
percentilerÅ   ·  sc   € ô ×)Ò)¨!¯'©'Ó2´cÓ9Ø�D‰D”×,Ò,Ó.×:Ñ:Ó;ˆØ	
ˆU�€BäØ	Ø
ØØ'ØØØ#ôð r   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r   r   r
   r   r    rB   rC   r¸   rJ   r<   r   r   r   r   )r   s   "r   r   r   Ò  sD   € ÷ ñ Øðà
ðð 
ðð ð	ð
 ðð ñr   c           	     óL   € \        V \        P                  ! R 4      VVVVR7      # )g      à?)r   r¸   rB   r<   )r¿   rI   r¦   )r   r   rB   r¸   r<   s   &&&&&r   ÚmedianrÈ   Ò  s,   € ô Ø	Ü�Š˜ÓØØ'ØØôð r   r/   )NN)NNF)NNFNN)NNNFNN)NNNF)NNNr&   F)NNN)NNFÚlinearF)NNFF)1Ú__doc__Ú
__future__r   r0   Útypingr   r   r   r   rI   Ú r   r   Úcollections.abcr	   Ú_normalizationsr
   r   r   r   r   r   r   r   r2   r;   r?   rM   rR   rZ   r_   re   Úmaxrj   Úminrm   ry   r~   Úproductr�   r‹   r“   rš   rž   Ú
cumproductr³   r¿   rÅ   rÈ   r   r   r   Ú<module>rÔ      s  ðñõ #ã ß AÓ Aã ç !÷ Ý(÷÷ ñ ˆtƒ_€ÙˆTƒ]€õõ6ð ñ!ØAF÷!ó ð!ð ñ!ð
 ÷!ó ð!ð& ñ!ð
 ÷!ó ð!ð& ñ	Dð !%÷	Dó ð	Dð ñ	Dð !%÷	Dó ð	Dð ö6ó ð6ð €ð ö6ó ð6ð €ð öó ðð ö(ó ð(ð, ö)ó ð)ð& €ð ñ)ð !%÷)ó ð)ð  ñ2ð !%÷2ó ð2ð" ñ2ð !%÷2ó ð2÷,,÷(-ð( €
ñ1ð ÷1ð 1ñj(<ð )-÷(<ð (<ñVð )-÷ð ÷6ñ r   