§
    Ÿ²Åjü!  ã                  ó  — d dl mZ d dlmZ d dlZddlmZmZmZm	Z	 ddl
mZmZmZmZmZmZmZ d„ Zd„  ee¦  «        D ¦   «         Zd	Zd
„ Ze	 d/dddddddddœd0d„¦   «         Ze	 d/d ddddddd!œd1d$„¦   «         Ze	 	 	 d2d ddddddd!œd3d)„¦   «         ZeD ]$Z eee¦  «        Z ee¦  «         e¦   «         e<   Œ%d*„ Zeg d+¢z   Zd,„  ee¦  «        D ¦   «         Zg d-¢Z d.„ Z!eD ]$Z eee¦  «        Z e!e¦  «         e¦   «         e<   Œ%eez   Z"dS )4é    )Úannotations)ÚOptionalNé   )Ú_binary_ufuncs_implÚ_dtypes_implÚ_unary_ufuncs_implÚ_util)Ú	ArrayLikeÚArrayLikeOrScalarÚCastingModesÚ	DTypeLikeÚ
normalizerÚNotImplementedTypeÚOutArrayc                ó~   — |�:t          j        | |j        j        |¦  «        } t	          j        | |j        ¦  «        } | S ©N)r	   Útypecast_tensorÚdtypeÚtorch_dtypeÚtorchÚbroadcast_toÚshape)ÚresultÚoutÚcastings      úEC:\Projects\Historical\venv\Lib\site-packages\torch/_numpy/_ufuncs.pyÚ_ufunc_postprocessr      s9   € Ø
€ÝÔ& v¨s¬yÔ/DÀgÑNÔNˆÝÔ# F¨C¬IÑ6Ô6ˆØ€Mó    c                óD   — g | ]}|                      d ¦  «        s|dv¯|‘ŒS )Ú_)r   ÚmatmulÚdivmodÚldexp©Ú
startswith©Ú.0Únames     r   ú
<listcomp>r)      sD   € ð ð ð àØ�?Š?˜3ÑÔðð %)Ð0VÐ$VÐ$Vð 	à$VÐ$VÐ$Vr   )Ú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           
     ót   ‡ — t           	 dddddddddœdˆ fd„¦   «         }‰ j        |_        ‰ j        |_        |S )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Úextobjr   úOptional[OutArray]Úx1r   Úx2rH   r   r   úOptional[CastingModes]rI   r   úOptional[DTypeLike]rJ   rK   rL   c              ó   •‡— |�ˆfd„}
 |
| |¦  «        }  |
||¦  «        }n�t          | t          j        ¦  «        rKt          |t          j        ¦  «        r1t          j        | |¦  «        }t          j        | |f|‰¦  «        \  } }n+t          j        | |‰j        t          v ‰j        ¦  «        \  } } ‰| |¦  «        }t          ||‰¦  «        S )Nc                ó�   •— t          | t          j        ¦  «        rt          j        | |‰¦  «        S t          j        | |¬¦  «        S )N©r   )Ú
isinstancer   ÚTensorr	   r   Ú	as_tensor)Úxr   r   s     €r   Úcastz0deco_binary_ufunc.<locals>.wrapped.<locals>.cast[   sA   ø€ Ý˜a¥¤Ñ.Ô.ð ;Ý Ô0°°E¸7ÑCÔCÐCå œ?¨1°EÐ:Ñ:Ô:Ð:r   )rU   r   rV   r   Úresult_type_implr	   Útypecast_tensorsÚnep50_to_tensorsÚ__name__ÚNEP50_FUNCSr   )rN   rO   r   rH   r   rI   r   rJ   rK   rL   rY   r   Ú
torch_funcs       `       €r   Úwrappedz"deco_binary_ufunc.<locals>.wrappedJ   sí   øø€ ð Ðð;ð ;ð ;ð ;ð ;ð ��b˜%‘”ˆBØ��b˜%‘”ˆBˆBÝ˜�EœLÑ)Ô)ð 	­j¸½U¼\Ñ.JÔ.Jð 	Ý Ô1°"°bÑ9Ô9ˆEÝÔ+¨R°¨H°e¸WÑEÔE‰FˆB��å!Ô2Ø�B˜
Ô+­{Ð:¸JÔ<Oñô ‰FˆB�ð �˜B Ñ#Ô#ˆå! &¨#¨wÑ7Ô7Ð7r   r   ©r   rM   rN   r   rO   r   rH   r   r   rP   rI   r   r   rQ   rJ   r   rK   r   rL   r   ©r   r]   Ú__qualname__©r_   r`   s   ` r   Údeco_binary_ufuncre   C   sv   ø€ õ ð
 #'ð	"8ð %)Ø*5Ø$'Ø%)Ø$)Ø(,Ø%)ð"8ð "8ð "8ð "8ð "8ð "8ð "8ñ „Zð"8ðH &Ô.€GÔØ!Ô*€GÔà€Nr   rE   rF   F)r   rI   r   rJ   rK   rL   ÚaxesÚaxisr   rM   rN   r
   rO   r   rP   rI   r   r   rQ   rJ   rK   rL   rf   rg   c              ó¶   — |€t          j        | |¦  «        }t          j        | |f||¦  «        \  } }t	          j        | |¦  «        }t          |||¦  «        }|S r   )r   rZ   r	   r[   r   r!   r   )rN   rO   r   r   rI   r   rJ   rK   rL   rf   rg   r   s               r   r!   r!   y   s_   € ð  €}ÝÔ-¨b°"Ñ5Ô5ˆÝÔ# R¨ H¨e°WÑ=Ô=�F€Bˆå Ô'¨¨BÑ/Ô/€Få ¨¨WÑ5Ô5€FØ€Mr   TrG   r   rH   c              óN  — |�Ht          | t          j        ¦  «        rt          j        | ||¦  «        } nYt          j        | |¬¦  «        } nBt          | t          j        ¦  «        s(t          j        | ¦  «        } t          j        | ¦  «        } t          j        |¦  «        }t          j        |j	        ¦  «        dk    rt          d¦  «        ‚t          j        | |¦  «        }
| j	        t          j        k    r|
                     t          j        ¦  «        }
t          |
||¦  «        S )NrT   r   zldexp 2nd arg must be integer)rU   r   rV   r	   r   rW   Úcast_int_to_floatr   Ú	_categoryr   Ú
ValueErrorr   r#   Úfloat16Útor   )rN   rO   r   rH   r   rI   r   rJ   rK   rL   r   s              r   r#   r#   ”   sù   € ð ÐÝ�b�%œ,Ñ'Ô'ð 	2ÝÔ& r¨5°'Ñ:Ô:ˆBˆBå” ¨5Ð1Ñ1Ô1ˆBˆBå˜"�eœlÑ+Ô+ð 	-Ý” Ñ$Ô$ˆBÝÔ(¨Ñ,Ô,ˆBå	Œ˜Ñ	Ô	€BåÔ˜bœhÑ'Ô'¨1Ò,Ð,ÝÐ8Ñ9Ô9Ð9å Ô& r¨2Ñ.Ô.€Fà	„x•5”=Ò Ð à—’�5œ=Ñ)Ô)ˆå˜f c¨7Ñ3Ô3Ð3r   ©NNú-tuple[Optional[OutArray], Optional[OutArray]]Úout1Úout2c              óŠ  — t          d„ ||fD ¦   «         ¦  «        }|dk    rt          d¦  «        ‚|dk    r|\  }}|€|�t          d¦  «        ‚n|\  }}|€t          j        | |¦  «        }t          j        | |f||¦  «        \  } }t          j        | |¦  «        \  }}t          |||¦  «        }t          |||¦  «        }||fS )Nc              3  ó   K  — | ]}|d uV — Œ	d S r   © )r'   rX   s     r   ú	<genexpr>zdivmod.<locals>.<genexpr>Ï   s&   è è € Ð7Ð7 Q�1˜D�=Ð7Ð7Ð7Ð7Ð7Ð7r   r   z&both out1 and out2 need to be providedé   z>cannot specify 'out' as both a positional and keyword argument)
Úsumrl   Ú	TypeErrorr   rZ   r	   r[   r   r"   r   )rN   rO   rq   rr   r   rH   r   rI   r   rJ   rK   rL   Únum_outsÚo1Úo2ÚquotÚrems                    r   r"   r"   ¼   sñ   € õ& Ð7Ð7¨4°¨,Ð7Ñ7Ô7Ñ7Ô7€HØ�1‚}€}ÝÐAÑBÔBÐBØ	�QŠˆØ‰ˆˆBØˆ>˜R˜^ÝØPñô ð ð ,ð
 ‰
ˆˆdà€}ÝÔ-¨b°"Ñ5Ô5ˆÝÔ# R¨ H¨e°WÑ=Ô=�F€Bˆå#Ô*¨2¨rÑ2Ô2�I€Dˆ#å˜d D¨'Ñ2Ô2€DÝ
˜S $¨Ñ
0Ô
0€CØ�ˆ9Ðr   c               ó2   — t          | dg|¢R i |¤Ž\  }}||fS )Nr   )r"   )rX   ÚargsÚkwdsr}   r~   s        r   Úmodfr‚   î   s/   € Ý�q˜!Ð+˜dÐ+Ð+Ð+ dÐ+Ð+�I€Dˆ#Ø�ˆ9Ðr   )r"   r‚   r!   r#   c                óH   — g | ]}|                      d ¦  «        s|dk    ¯|‘Œ S )r    r   r$   r&   s     r   r)   r)   ù   s?   € ð 
ð 
ð 
àØ�?Š?˜3ÑÔð
ð %)¨G¢O Oð 	à$3 O Or   )Ú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           
     ót   ‡ — t           	 dddddddddœdˆ fd„¦   «         }‰ j        |_        ‰ j        |_        |S )z Common infra for unary ufuncs.

    Normalize arguments, sort out type casting, broadcasting and delegate to
    the pytorch functions for the actual work.
    NTrE   rF   FrG   r   rM   rX   r
   r   rP   r   rQ   rJ   r   c              ó´   •— |�t          j        | ||¦  «        } ‰
j        t          v rt          j        | ¦  «        }  ‰
| ¦  «        }	t          |	||¦  «        }	|	S r   )r	   r   r]   Ú	_fp_unaryrj   r   )rX   r   rH   r   rI   r   rJ   rK   rL   r   r_   s             €r   r`   z!deco_unary_ufunc.<locals>.wrapped(  s`   ø€ ð ÐÝÔ% a¨°Ñ8Ô8ˆAàÔ¥)Ð+Ð+ÝÔ'¨Ñ*Ô*ˆAà�˜A‘”ˆÝ# F¨C°Ñ9Ô9ˆØˆr   r   )
r   rM   rX   r
   r   rP   r   rQ   rJ   r   rb   rd   s   ` r   Údeco_unary_ufuncr£   !  su   ø€ õ ð #'ðð
 Ø*5ØØ%)Ø$)ØØðð ð ð ð ð ð ñ „Zðð. &Ô.€GÔØ!Ô*€GÔà€Nr   r   )r   rM   rN   r
   rO   r
   r   rP   rI   r   r   rQ   rJ   r   rK   r   rL   r   rf   r   rg   r   ra   )NNro   )r   rp   rN   r
   rO   r
   rq   rM   rr   rM   rH   r   r   rP   rI   r   r   rQ   rJ   r   rK   r   rL   r   )#Ú
__future__r   Útypingr   r   Ú r   r   r   r	   Ú_normalizationsr
   r   r   r   r   r   r   r   ÚdirÚ_binaryr^   re   r!   r#   r"   r(   ÚgetattrÚufuncÚvarsr‚   Ú_unaryr¢   r£   Ú__all__ru   r   r   ú<module>r¯      sè  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à €€€à JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ðð à�Ð'Ñ(Ô(ðñ ô €ð€ð</ð /ð /ðl ð
 #ð	ð '2Ø #Ø!%Ø %Ø$(Ø!%Ø#Ø#ðð ð ð ð ñ „ðð4 ð
 #ð	#4ð !%Ø&1Ø #Ø!%Ø %Ø$(Ø!%ð#4ð #4ð #4ð #4ð #4ñ „ð#4ðN ð  $Ø#à9Eð&ð !%Ø&1Ø #Ø!%Ø %Ø$(Ø!%ð&ð &ð &ð &ð &ñ „ð&ðX ð ,ð ,€DØˆGÐ'¨Ñ.Ô.€EØ$Ð$ UÑ+Ô+€D€D�F„Fˆ4�L€Lðð ð ð
 Ð9Ð9Ð9Ñ
9€ð
ð 
à�Ð&Ñ'Ô'ð
ñ 
ô 
€ðð ð €	ð@"ð "ð "ðP ð +ð +€DØˆGÐ&¨Ñ-Ô-€EØ#Ð# EÑ*Ô*€D€D�F„Fˆ4�L€Lð �FÑ
€€€r   