Ë
    g^(h.  ã                  óÞ  — d Z ddlmZ ddlZddlmZmZ ddlZddlm	Z	m
Z
 erddlmZmZmZmZmZmZ d„ Zd	„ Zed!d
dœd"d„«       Ze	 	 d#d
dœ	 	 	 	 	 	 	 d$d„«       Ze	 	 d#d
dœ	 	 	 	 	 	 	 d$d„«       Ze	 	 	 d%ddœ	 	 	 	 	 	 	 	 	 d&d„«       Ze	 	 	 d%ddœ	 	 	 	 	 	 	 	 	 d&d„«       Ze	 	 	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 d(d„«       ZeZe	 	 	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 d(d„«       ZeZe	 	 	 d%	 	 	 	 	 	 	 d$d„«       Ze	 	 	 	 	 	 d)	 	 	 	 	 	 	 	 	 	 	 	 	 d*d„«       Ze	 	 	 	 	 	 d)	 	 	 	 	 	 	 	 	 	 	 	 	 d*d„«       ZeZ e	 	 	 	 d+ddœ	 	 	 	 	 	 	 	 	 	 	 d,d„«       Z!e	 	 	 	 	 d-ddœ	 	 	 	 	 	 	 	 	 	 	 d,d„«       Z"e	 	 	 	 	 d-ddœ	 	 	 	 	 	 	 	 	 	 	 d,d„«       Z#	 	 	 d.	 	 	 	 	 	 	 d/d„Z$	 	 	 d.	 	 	 	 	 	 	 d/d„Z%e%Z&	 	 	 d%d
dœ	 	 	 d0d„Z'	 	 	 	 	 d1ddœ	 	 	 	 	 	 	 	 	 	 	 d2d„Z(	 	 	 	 	 d1ddœ	 	 	 	 	 	 	 	 	 	 	 d2d„Z)	 	 	 	 d3	 	 	 	 	 d4d „Z*y)5z¿ 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)ÚOptionalÚTYPE_CHECKINGé   )Ú_dtypes_implÚ_util)Ú	ArrayLikeÚAxisLikeÚ	DTypeLikeÚKeepDimsÚNotImplementedTypeÚOutArrayc                óD   ‡ — t        j                  ‰ «      dˆ fd„	«       }|S )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                óÔ   •— |� t        j                  || j                  «      }|dk(  r4t        j                  | j                  d¬«      }| j                  |«      } d} ‰| |g|¢­i |¤ŽS )N© r   ©Úaxis©r   )r   Únormalize_axis_tupleÚndimÚexpand_shapeÚshapeÚreshape)Úar   ÚargsÚkwdsÚnewshapeÚfuncs        €ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_numpy/_reductions_impl.pyÚwrappedz"_deco_axis_expand.<locals>.wrapped#   sh   ø€ àÐÜ×-Ñ-¨d°A·F±FÓ;ˆDà�2Š:ô ×)Ñ)¨!¯'©'¸Ô:ˆHØ—	‘	˜(Ó#ˆAØˆDá�A�tÐ+˜dÒ+ dÑ+Ð+ó    ©N)Ú	functoolsÚwraps)r   r    s   ` r   Ú_deco_axis_expandr%      s'   ø€ ô ‡_�_�TÓô,ó ð,ð €Nr!   c                óz   — | €|} | j                   s*| j                  st        j                  «       j                  S | S )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)ÚdtypeÚother_dtypes     r   Ú_atleast_floatr-   4   s9   € ð €}ØˆØ×#Ò# u×'7Ò'7Ü×*Ñ*Ó,×8Ñ8Ð8Ø€Lr!   F)Úkeepdimsc               ó$   — | j                  |«      S r"   )Úcount_nonzero)r   r   r.   s      r   r0   r0   B   s   € à�?‰?˜4Ó Ð r!   c               ó"  — | j                  «       rt        d| j                  › d�«      ‚t        j                  |«      }| j                  t
        j                  k(  r| j                  t
        j                  «      } t        j                  | |«      S )Nzargmax with dtype=ú.)
r(   ÚNotImplementedErrorr+   r   Úallow_only_single_axisÚtorchÚboolÚtoÚuint8Úargmax©r   r   Úoutr.   s       r   r9   r9   G   ói   € ð 	‡|�|„~Ü!Ð$6°q·w±w°i¸qÐ"AÓBÐBä×'Ñ'¨Ó-€Dà‡w�w”%—*‘*Òà�D‰D”—‘Óˆä�<‰<˜˜4Ó Ð r!   c               ó"  — | j                  «       rt        d| j                  › d�«      ‚t        j                  |«      }| j                  t
        j                  k(  r| j                  t
        j                  «      } t        j                  | |«      S )Nzargmin with dtype=r2   )
r(   r3   r+   r   r4   r5   r6   r7   r8   Úargminr:   s       r   r>   r>   [   r<   r!   )Úwherec               óh   — t        j                  |«      }|€i nd|i}t        j                  | fi |¤ŽS ©NÚdim)r   r4   r5   Úany©r   r   r;   r.   r?   Úaxis_kws         r   rC   rC   o   ó7   € ô ×'Ñ'¨Ó-€DØ�L‰b u¨d m€GÜ�9‰9�QÑ"˜'Ñ"Ð"r!   c               óh   — t        j                  |«      }|€i nd|i}t        j                  | fi |¤ŽS rA   )r   r4   r5   ÚallrD   s         r   rH   rH   }   rF   r!   c                ót   — | j                  «       rt        d| j                  › �«      ‚| j                  |«      S )Nzamax with dtype=)r(   r3   r+   Úamax©r   r   r;   r.   Úinitialr?   s         r   rJ   rJ   ‹   ó2   € ð 	‡|�|„~Ü!Ð$4°Q·W±W°IÐ">Ó?Ð?à�6‰6�$‹<Ðr!   c                ót   — | j                  «       rt        d| j                  › �«      ‚| j                  |«      S )Nzamin with dtype=)r(   r3   r+   ÚaminrK   s         r   rO   rO   �   rM   r!   c                óH   — | j                  |«      | j                  |«      z
  S r"   )rJ   rO   r:   s       r   ÚptprQ   ¯   s   € ð �6‰6�$‹<˜!Ÿ&™& ›,Ñ&Ð&r!   c                óØ   — |�t        |t        j                  «      sJ ‚|t        j                  k(  rt	        j
                  «       j                  }|€i nd|i} | j                  dd|i|¤ŽS ©NrB   r+   r   )Ú
isinstancer5   r+   r6   r   r)   Ú	int_dtypeÚsum©r   r   r+   r;   r.   rL   r?   rE   s           r   rV   rV   ¹   sd   € ð ˆ=œJ u¬e¯k©kÔ:Ð:Ð:à”—
‘
ÒÜ×+Ñ+Ó-×7Ñ7ˆà�L‰b u¨d m€GØˆ1�5‰5Ñ(�uÐ( Ñ(Ð(r!   c                óÆ   — t        j                  |«      }|t        j                  k(  rt	        j
                  «       j                  }|€i nd|i} | j                  dd|i|¤ŽS rS   )r   r4   r5   r6   r   r)   rU   ÚprodrW   s           r   rY   rY   Ì   s\   € ô ×'Ñ'¨Ó-€Dà”—
‘
ÒÜ×+Ñ+Ó-×7Ñ7ˆà�L‰b u¨d m€GØˆ1�6‰6Ñ)˜Ð) Ñ)Ð)r!   c               ój   — t        || j                  «      }|€i nd|i} | j                  dd|i|¤Ž}|S rS   )r-   r+   Úmean)r   r   r+   r;   r.   r?   rE   Úresults           r   r[   r[   â   s@   € ô ˜5 !§'¡'Ó*€Eà�L‰b u¨d m€GØˆQ�V‰VÑ+˜%Ð+ 7Ñ+€Fà€Mr!   c               ó°   — |}t        || j                  «      }t        j                  | |«      }|j	                  ||¬«      }	t        j                  |	|«      S ©N)rB   Ú
correction)r-   r+   r   Úcast_if_neededÚstd©
r   r   r+   r;   Úddofr.   r?   Úin_dtypeÚtensorr\   s
             r   ra   ra   ô   óP   € ð €HÜ˜5 !§'¡'Ó*€EÜ×!Ñ! ! UÓ+€FØ�Z‰Z˜D¨TˆZÓ2€FÜ×Ñ ¨Ó1Ð1r!   c               ó°   — |}t        || j                  «      }t        j                  | |«      }|j	                  ||¬«      }	t        j                  |	|«      S r^   )r-   r+   r   r`   Úvarrb   s
             r   rh   rh     rf   r!   c                ó  — |t         j                  k(  rt        j                  «       j                  }|€| j
                  }t        j                  | |¬«      \  \  } }t        j                  || j                  «      }| j                  ||¬«      S ©Nr   )r   r+   )r5   r6   r   r)   rU   r+   r   Úaxis_none_flattenÚnormalize_axis_indexr   Úcumsum©r   r   r+   r;   s       r   rm   rm     ss   € ð ”—
‘
ÒÜ×+Ñ+Ó-×7Ñ7ˆØ€}Ø—‘ˆä×(Ñ(¨°Ô6�J�D€Qˆ$Ü×%Ñ% d¨A¯F©FÓ3€Dà�8‰8˜ Uˆ8Ó+Ð+r!   c                ó  — |t         j                  k(  rt        j                  «       j                  }|€| j
                  }t        j                  | |¬«      \  \  } }t        j                  || j                  «      }| j                  ||¬«      S rj   )r5   r6   r   r)   rU   r+   r   rk   rl   r   Úcumprodrn   s       r   rp   rp   .  ss   € ð ”—
‘
ÒÜ×+Ñ+Ó-×7Ñ7ˆØ€}Ø—‘ˆä×(Ñ(¨°Ô6�J�D€Qˆ$Ü×%Ñ% d¨A¯F©FÓ3€Dà�9‰9˜$ eˆ9Ó,Ð,r!   c               ó¦  — |€Ot        | |¬«      }t        j                  | j                  «       |j                  «       z  |j                  ¬«      }�n| j                  j
                  s| j                  «       } | j                  |j                  k7  r–|€t        d«      ‚|j                  dk7  rt        d«      ‚|j                  d   | j                  |   k7  rt        d«      ‚t        j                  || j                  dz
  dz  |j                  z   «      }|j                  d	|«      }t        j                  | |«      }t        | |z  ||¬«      }t        |||¬«      }||z  }|r!t!        j"                  ||| j                  «      }|rK|j                  |j                  k7  r.t        j                  ||j                  «      j%                  «       }||fS |S )
Nr   )r+   z;Axis must be specified when shapes of a and weights differ.r   z81D weights expected when shapes of a and weights differ.r   z5Length of weights not compatible with specified axis.)r   éÿÿÿÿ)r[   r5   Ú	as_tensorÚnumelr+   r'   Údoubler   Ú	TypeErrorr   Ú
ValueErrorÚbroadcast_toÚswapaxesr   Úresult_type_implrV   r   Úapply_keepdimsÚclone)	r   r   ÚweightsÚreturnedr.   r\   ÚwsumÚresult_dtypeÚ	numerators	            r   Úaverager‚   B  sš  € ð €Ü�a˜dÔ#ˆÜ�‰˜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óð ô
 ×(Ñ(¨°1·6±6¸A±:ÀÑ2EÈÏÉÑ2UÓVˆGØ×&Ñ& r¨4Ó0ˆGô $×4Ñ4°Q¸Ó@ˆÜ˜˜G™ T°Ô>ˆ	Ü�7˜D¨Ô5ˆØ˜TÑ!ˆñ Ü×%Ñ% f¨d°A·F±FÓ;ˆáØ�:‰:˜Ÿ™Ò%Ü×%Ñ% d¨F¯L©LÓ9×?Ñ?ÓAˆDØ�tˆ|Ðàˆr!   )Úinterpolationc               ó0  — |r	 | j                   j                  s/t        j                  «       j                  }| j                  |«      } | j                   t        j                  k(  r| j                  t        j                  «      } |€#| j                  «       } |j                  «       }d}n t        j                  || j                  «      }t        j                  |«      }t        j                  || j                   «      }t        j                  | |||¬«      S )Nr   )r   rƒ   )r+   r'   r   r)   r*   r7   r5   Úfloat16Úfloat32Úflattenr   r   r   r4   r`   Úquantile)	r   Úqr   r;   Úoverwrite_inputÚmethodr.   rƒ   r+   s	            r   rˆ   rˆ   w  sÑ   € ñ ð
 	à�7‰7×$Ò$Ü×+Ñ+Ó-×9Ñ9ˆØ�D‰D�‹Kˆð 	‡w�w”%—-‘-ÒØ�D‰D”—‘Óˆà€|Ø�I‰I‹KˆØ�I‰I‹KˆØ‰ä×)Ñ)¨$°·±Ó7ˆô
 ×'Ñ'¨Ó-€Dä×Ñ˜Q §¡Ó(€Aä�>‰>˜!˜Q T¸Ô@Ð@r!   c          	     óÖ   — t        j                  |j                  «      t        k(  r-|j	                  t        j
                  «       j                  «      }|dz  }t        | ||||||¬«      S )Ng      Y@)r   rŠ   r‹   r.   rƒ   )r   Úpython_type_for_torchr+   Úintr7   r)   r*   rˆ   )	r   r‰   r   r;   rŠ   r‹   r.   rƒ   Úqqs	            r   Ú
percentiler�   ¢  sc   € ô ×)Ñ)¨!¯'©'Ó2´cÒ9Ø�D‰D”×,Ñ,Ó.×:Ñ:Ó;ˆØ	
ˆU‰€BäØ	Ø
ØØ'ØØØ#ôð r!   c                óJ   — t        | t        j                  d«      ||||¬«      S )Ng      à?)r   rŠ   r;   r.   )rˆ   r5   rs   )r   r   r;   rŠ   r.   s        r   Úmedianr’   ½  s,   € ô Ø	Ü�‰˜ÓØØ'ØØôð r!   r"   )r   r	   r   r
   r.   r   )NN)r   r	   r   r
   r;   úOptional[OutArray]r.   r   )NNF)
r   r	   r   r
   r;   r“   r.   r   r?   r   )NNFNN)r   r	   r   r
   r;   r“   r.   r   rL   r   r?   r   )NNNFNN)r   r	   r   r
   r+   úOptional[DTypeLike]r;   r“   r.   r   rL   r   r?   r   )NNNF)r   r	   r   r
   r+   r”   r;   r“   r.   r   r?   r   )NNNr   F)NNN)r   r	   r   r
   r+   r”   r;   r“   )r   r	   r}   r	   )NNFÚlinearF)r   r	   r‰   r	   r   r
   r;   r“   r.   r   rƒ   r   )NNFF)r   r	   r;   r“   r.   r   )+Ú__doc__Ú
__future__r   r#   Útypingr   r   r5   Ú r   r   Ú_normalizationsr	   r
   r   r   r   r   r%   r-   r0   r9   r>   rC   rH   rJ   ÚmaxrO   ÚminrQ   rV   rY   Úproductr[   ra   rh   rm   rp   Ú
cumproductr‚   rˆ   r�   r’   r   r!   r   ú<module>rŸ      s-  ðñõ
 #ã ß *ã ç !ñ ÷÷ òò.ð ð!Èuô !ó ð!ð ð Ø"ð!ð
 ñ!Øð!à
ð!ð 
ð!ð
 ò!ó ð!ð& ð Ø"ð!ð
 ñ!Øð!à
ð!ð 
ð!ð
 ò!ó ð!ð& ð Ø"Øð	
#ð !%ñ
#Øð
#à
ð
#ð 
ð
#ð ð	
#ð ò
#ó ð
#ð ð Ø"Øð	
#ð !%ñ
#Øð
#à
ð
#ð 
ð
#ð ð	
#ð ò
#ó ð
#ð ð Ø"ØØ"&Ø $ðØðà
ðð 
ðð ð	ð
  ðð òó ðð €ð ð Ø"ØØ"&Ø $ðØðà
ðð 
ðð ð	ð
  ðð òó ðð €ð ð Ø"Øð	'Øð'à
ð'ð 
ð'ð ò	'ó ð'ð ð Ø!%Ø"ØØ"&Ø $ð)Øð)à
ð)ð ð)ð 
ð	)ð
 ð)ð  ð)ð ò)ó ð)ð$ ð Ø!%Ø"ØØ"&Ø $ð*Øð*à
ð*ð ð*ð 
ð	*ð
 ð*ð  ð*ð ò*ó ð*ð$ €ð ð Ø!%Ø"Øðð !%ñØðà
ðð ðð 
ð	ð
 ðð òó ðð" ð Ø!%Ø"Ø	
Øð2ð !%ñ2Øð2à
ð2ð ð2ð 
ð	2ð ð2ð ò2ó ð2ð" ð Ø!%Ø"Ø	
Øð2ð !%ñ2Øð2à
ð2ð ð2ð 
ð	2ð ð2ð ò2ó ð2ð0 Ø!%Ø"ð	,Øð,à
ð,ð ð,ð 
ó	,ð& Ø!%Ø"ð	-Øð-à
ð-ð ð-ð 
ó	-ð" €
ð
 
ØØð	1ð ñ1Øð1ð ó1ðp Ø"ØØØð(Að )-ñ(AØð(Aàð(Að ð(Að 
ð	(Að ð(Að &ó(Að\ Ø"ØØØðð )-ñØðàðð ðð 
ð	ð ðð &óð: 
Ø"ØØðØðð 
ðð
 ôr!   