ó
    Eñi®   ã                  ó*  • S SK Jr  S SKJr  S SKrSSKJrJrJrJ	r	  SSK
JrJrJrJrJrJrJr  S r\" \5       V s/ s H%  n U R)                  S5      (       a  M  U S	;  d  M#  U PM'     sn rS
rS r\ SSSSSSSSSS.                     SS jjj5       r\ SSSSSSSSS.                   SS jjj5       r\   SSSSSSSSS.                       SS jjj5       r\ H  r\" \\5      r\" \5      \" 5       \'   M     S r\/ SQ-   r\" \5       V s/ s H%  n U R)                  S5      (       a  M  U S:w  d  M#  U PM'     sn r / SQr!S r"\  H  r\" \\5      r\"" \5      \" 5       \'   M     \\ -   r#gs  sn f s  sn f )é    )Úannotations)ÚOptionalNé   )Ú_binary_ufuncs_implÚ_dtypes_implÚ_unary_ufuncs_implÚ_util)Ú	ArrayLikeÚArrayLikeOrScalarÚCastingModesÚ	DTypeLikeÚ
normalizerÚNotImplementedTypeÚOutArrayc                ó¢   • UbK  [         R                  " XR                  R                  U5      n [        R
                  " XR                  5      n U $ ©N)r	   Útypecast_tensorÚdtypeÚtorch_dtypeÚtorchÚbroadcast_toÚshape)ÚresultÚoutÚcastings      ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_numpy/_ufuncs.pyÚ_ufunc_postprocessr      s<   € Ø
�Ü×&Ò& v¯y©y×/DÑ/DÀgÓNˆÜ×#Ò# F¯I©IÓ6ˆØ€Mó    Ú_)r   ÚmatmulÚdivmodÚldexp)ÚaddÚsubtractÚmultiplyÚfloor_divideÚtrue_divideÚdivideÚ	remainderÚbitwise_andÚ
bitwise_orÚbitwise_xorÚbitwise_left_shiftÚbitwise_right_shiftÚhypotÚarctan2Ú	logaddexpÚ
logaddexp2Ú	heavisideÚcopysignÚfmaxÚminimumÚfminÚmaximumÚfmodÚgcdÚlcmÚpowc           
     ó®   ^ • [          SSSSSSSSS.                   S	U 4S jjjj5       nT R                  Ul        T R                  Ul        U$ )
z•Common infra for binary ufuncs.

Normalize arguments, sort out type casting, broadcasting and delegate to
the pytorch functions for the actual work.
NTÚ	same_kindÚKF©Úwherer   Úorderr   ÚsubokÚ	signatureÚextobjc              ó¬  >^• Ub  U4S jn
U
" X5      n U
" X5      nO¥[        U [        R                  5      (       aQ  [        U[        R                  5      (       a2  [        R                  " X5      n[
        R                  " X4UT5      u  pO5[        R                  " XTR                  [        ;   TR                  5      u  pT" X5      n[        X²T5      $ )Nc                ó˜   >• [        U [        R                  5      (       a  [        R                  " XT5      $ [        R
                  " XS9$ )N©r   )Ú
isinstancer   ÚTensorr	   r   Ú	as_tensor)Úxr   r   s     €r   ÚcastÚ0deco_binary_ufunc.<locals>.wrapped.<locals>.cast[   s6   ø€ Ü˜a¤§¡×.Ñ.Ü ×0Ò0°¸7ÓCÐCä Ÿ?š?¨1Ñ:Ð:r   )rI   r   rJ   r   Úresult_type_implr	   Útypecast_tensorsÚnep50_to_tensorsÚ__name__ÚNEP50_FUNCSr   )Úx1Úx2r   rA   r   rB   r   rC   rD   rE   rM   r   Ú
torch_funcs       `       €r   ÚwrappedÚ"deco_binary_ufunc.<locals>.wrappedJ   s²   ù€ ð Ñõ;ñ �b“ˆBÙ�b“‰BÜ˜œEŸL™L×)Ñ)¬j¸¼U¿\¹\×.JÑ.JÜ ×1Ò1°"Ó9ˆEÜ×+Ò+¨R¨H°e¸WÓE‰FˆB�ä!×2Ò2Ø˜
×+Ñ+¬{Ñ:¸J×<OÑ<Oó‰FˆBñ ˜BÓ#ˆä! &¨wÓ7Ð7r   r   ©r   úOptional[OutArray]rT   r   rU   r   rA   r   r   úOptional[CastingModes]rB   r   r   úOptional[DTypeLike]rC   r   rD   r   rE   r   ©r   rR   Ú__qualname__©rV   rW   s   ` r   Údeco_binary_ufuncr`   C   sÁ   ø€ ô ð
 #'ð	"8ð %)Ø*5Ø$'Ø%)Ø$)Ø(,Ø%)ñ"8ð  ð	"8Øð"8àð"8ð "ð"8ð (ð"8ð "ð"8ð #ð"8ð "ð"8ð &ð"8ð #÷"8ð "8ó ð"8ðH &×.Ñ.€GÔØ!×*Ñ*€GÔà€Nr   r>   r?   F)r   rB   r   rC   rD   rE   ÚaxesÚaxisc              ó°   • Uc  [         R                  " X5      n[        R                  " X4XS5      u  p[        R
                  " X5      n[        X²U5      nU$ r   )r   rO   r	   rP   r   r    r   )rT   rU   r   r   rB   r   rC   rD   rE   ra   rb   r   s               r   r    r    y   sP   € ð  �}Ü×-Ò-¨bÓ5ˆÜ×#Ò# R H¨eÓ=�F€Bä ×'Ò'¨Ó/€Fä ¨WÓ5€FØ€Mr   Tr@   c              ó~  • UbL  [        U [        R                  5      (       a  [        R                  " XU5      n O`[        R
                  " XS9n OK[        U [        R                  5      (       d,  [        R
                  " U 5      n [        R                  " U 5      n [        R
                  " U5      n[        R                  " UR                  5      S:w  a  [        S5      e[        R                  " X5      n
U R                  [        R                  :X  a  U
R                  [        R                  5      n
[        X¢U5      $ )NrH   r   zldexp 2nd arg must be integer)rI   r   rJ   r	   r   rK   Úcast_int_to_floatr   Ú	_categoryr   Ú
ValueErrorr   r"   Úfloat16Útor   )rT   rU   r   rA   r   rB   r   rC   rD   rE   r   s              r   r"   r"   ”   sÚ   € ð ÑÜ�bœ%Ÿ,™,×'Ñ'Ü×&Ò& r°'Ó:‰Bä—’ Ñ1‰Bä˜"œeŸl™l×+Ñ+Ü—’ Ó$ˆBÜ×(Ò(¨Ó,ˆBä	�Š˜Ó	€Bä×Ò˜bŸh™hÓ'¨1Ó,ÜÐ8Ó9Ð9ä ×&Ò& rÓ.€Fà	‡x�x”5—=‘=Ó à—‘œ5Ÿ=™=Ó)ˆä˜f¨7Ó3Ð3r   c              óZ  • [        S X#4 5       5      nUS:X  a  [        S5      eUS:X  a  Uu  pÞUc  Ub  [        S5      eOUu  p#Uc  [        R                  " X5      n[
        R                  " X4X†5      u  p[        R                  " X5      u  nn[        XòU5      n[        UX65      nUU4$ )Nc              3  ó(   #   • U  H  oS Lv •  M
     g 7fr   © )Ú.0rL   s     r   Ú	<genexpr>Údivmod.<locals>.<genexpr>Ï   s   é € Ð7ª, Q˜D•=ª,ùs   ‚r   z&both out1 and out2 need to be providedé   z>cannot specify 'out' as both a positional and keyword argument)
Úsumrg   Ú	TypeErrorr   rO   r	   rP   r   r!   r   )rT   rU   Úout1Úout2r   rA   r   rB   r   rC   rD   rE   Únum_outsÚo1Úo2ÚquotÚrems                    r   r!   r!   ¼   s¿   € ô& Ñ7¨4©,Ó7Ó7€HØ�1ƒ}ÜÐAÓBÐBØ	�Q‹Ø‰ˆØ‰>˜R™^ÜØPóð ð ,ð
 ‰
ˆà�}Ü×-Ò-¨bÓ5ˆÜ×#Ò# R H¨eÓ=�F€Bä#×*Ò*¨2Ó2�I€Dˆ#ä˜d¨'Ó2€DÜ
˜S $Ó
0€CØ�ˆ9Ðr   c               ó,   • [        U S/UQ70 UD6u  p4XC4$ )Nr   )r!   )rL   ÚargsÚkwdsrx   ry   s        r   Úmodfr}   î   s"   € Ü�q˜!Ð+˜dÒ+ dÑ+�I€DØˆ9Ðr   )r!   r}   r    r"   r   )ÚarccosÚarccoshÚarcsinÚarcsinhÚarctanÚarctanhÚcbrtÚcosÚcoshÚdeg2radÚdegreesÚexpÚexp2Úexpm1ÚlogÚlog10Úlog1pÚlog2Úrad2degÚradiansÚ
reciprocalÚsinÚsinhÚsqrtÚsquareÚtanÚtanhÚtruncc           
     óš   ^ • [          SSSSSSSSS.         S	U 4S jjjj5       nT R                  Ul        T R                  Ul        U$ )
z”Common infra for unary ufuncs.

Normalize arguments, sort out type casting, broadcasting and delegate to
the pytorch functions for the actual work.
NTr>   r?   Fr@   c              ó¸   >• Ub  [         R                  " XU5      n T
R                  [        ;   a  [         R                  " U 5      n T
" U 5      n	[        X‘U5      n	U	$ r   )r	   r   rR   Ú	_fp_unaryre   r   )rL   r   rA   r   rB   r   rC   rD   rE   r   rV   s             €r   rW   Ú!deco_unary_ufunc.<locals>.wrapped(  sU   ø€ ð ÑÜ×%Ò% a°Ó8ˆAà×Ñ¤)Ó+Ü×'Ò'¨Ó*ˆAá˜A“ˆÜ# F°Ó9ˆØˆr   r   )
r   rZ   rL   r
   r   r[   r   r\   rC   r   r]   r_   s   ` r   Údeco_unary_ufuncrž   !  s�   ø€ ô ð #'ðð
 Ø*5ØØ%)Ø$)ØØñð  ðØðð (ðð #ðð "÷ð ó ðð. &×.Ñ.€GÔØ!×*Ñ*€GÔà€Nr   r   )r   rZ   rT   r
   rU   r
   r   r[   rB   r   r   r\   rC   r   rD   r   rE   r   ra   r   rb   r   rY   )NN)NN)r   z-tuple[Optional[OutArray], Optional[OutArray]]rT   r
   rU   r
   rs   rZ   rt   rZ   rA   r   r   r[   rB   r   r   r\   rC   r   rD   r   rE   r   )$Ú
__future__r   Útypingr   r   Ú r   r   r   r	   Ú_normalizationsr
   r   r   r   r   r   r   r   ÚdirÚ
startswithÚ_binaryrS   r`   r    r"   r!   ÚnameÚgetattrÚufuncÚvarsr}   Ú_unaryrœ   rž   Ú__all__)r¦   s   0r   Ú<module>r¬      s%  ðõ #å ã ç JÓ J÷÷ ñ òñ Ð'Ô(óâ(ˆØ�?‰?˜3×ó 	à$(Ð0VÑ$V÷ 	Ù(ñ€ð€ò</ðl ð
 #ð	ð '2Ø #Ø!%Ø %Ø$(Ø!%Ø#Ø#ñð 
ð	Øðàðð $ðð ðð ðð ðð "ðð ðð ðð õó ðð4 ð
 #ð	#4ð !%Ø&1Ø #Ø!%Ø %Ø$(Ø!%ñ#4ð 
ð	#4Øð#4àð#4ð ð#4ð $ð#4ð ð#4ð ð#4ð ð#4ð "ð#4ð õ#4ó ð#4ðN ð  $Ø#à9Eð&ð !%Ø&1Ø #Ø!%Ø %Ø$(Ø!%ñ&ð 
7ð&Øð&àð&ð ð&ð ð	&ð ð&ð $ð&ð ð&ð ð&ð ð&ð "ð&ð õ&ó ð&óX €DÙÐ'¨Ó.€EÙ$ UÓ+�DƒFˆ4ƒLñ ò
ð
 Ò9Ñ
9€ñ Ð&Ô'ó
â'ˆØ�?‰?˜3×ó 	à$(¨G¡O÷ 	Ù'ñ
€ò€	ò@"óP €DÙÐ&¨Ó-€EÙ# EÓ*�DƒFˆ4ƒLñ ð
 �FÑ
�ùòa	ùòv
s#   ¼FÁFÁ"FÄ-FÅFÅF