§
    J�’jòï  ã            
      óÞ  — d Z ddlmZ ddlZddlZddlZddlmZ ddlZddl	m
Z
mZ erddlmZ ddlmZmZmZmZmZmZmZ 	 dõdöd„Z	 	 d÷død„Zdùd„Zdùd„Zdùd„Zd„ Zdúd„Z	 dûdüd„Z	 	 	 	 dûdýd&„Zddd'œdþd)„ZeZ ddd'œdþd*„Z!ddd'œdþd+„Z"ddd'œdþd,„Z#	 	 dÿddd'œ�d d.„Z$�d�dd1„Z%�dd2„Z&�dd3„Z'd4„ Z(�d�dd6„Z)�d�dd7„Z*�dd8„Z+�dd9„Z,�dd:„Z-�dd<„Z.�d�dd>„Z/	 	 	 	 	 �d	�d
dC„Z0	 	 	 	 �d�d
dD„Z1	 	 	 	 	 �d�ddF„Z2	 	 	 	 �dddGœ�ddK„Z3	 	 �dddGœ�ddM„Z4	 	 	 	 �d�ddO„Z5	 	 �dddGœ�ddQ„Z6	 	 	 	 �d�ddR„Z7	 	 �dddGœ�ddS„Z8	 	 	 	 �d�ddT„Z9	 	 �dddGœ�ddU„Z:	 	 	 	 �d�ddV„Z;�ddW„Z<	 	 	 	 �dddXœ�dd[„Z=	 	 	 	 	 	 �dddXœ�dd_„Z>d`„ Z?�d�ddc„Z@�d�dde„ZA�d�ddg„ZB	 	 �d �d!di„ZC�d"dj„ZD�d"dk„ZE�d�d"dl„ZF�d"dm„ZG�d�d#dn„ZH�d#do„ZI�d#dp„ZJ�d$�d#dr„ZK�d�d%dt„ZLdu„ ZMd
dvœ�d&dx„ZNd@d
dydzœ�d'd|„ZOePd
f�dd}„ZQ�d�d#d~„ZR�d�d#d„ZSdÿd€„ZTdÿd�„ZU�d�d(d‚„ZV�d�d(dƒ„ZW	 	 	 �d)ddGœ�d*d„„ZX�d+�dd‡„ZY�d+�ddˆ„ZZ�dd‰„Z[�d�d,dŒ„Z\�d,d�„Z]	 �d-�d.d�„Z^	 	 	 �d/�d0d”„Z_�d1d•„Z`	 �d2�d3d–„Za�d4d—„Zb	 	 �d5�d6d™„Zc	 	 	 	 �d7d@dšœ�d8dž„Zd�d"dŸ„Ze�d"d „Zf�d"d¡„Zg	 	 	 �d9�d:d¤„Zh�d�d;d§„Zi�d<d©„Zj�d�d"dª„Zk�d=�d"d«„Zl	 	 	 	 	 �d>�d?d¬„Zm	 	 	 	 �d@ddGœ�dd­„Zn�dddGœ�d*d®„Zo�d�dAd¯„Zp�d�dAd°„Zq�dBd²„Zr�d(d³„Zs�d�dCdµ„Zt�dd¶„Zu�dB�dd·„Zv�d�dDd¸„Zw�dd¹„Zx�d�dDdº„Zy�dE�dd¼„Zzddd	d½d
d¾œd¿„Z{dÀ„ Z|�dF�dGdÁ„Z}�dF�dGdÂ„Z~	 �dH�dIdÅ„Z�d"dÆ„Z€�d"dÇ„Z��d�d"dÈ„Z‚�d�d"dÉ„Zƒ�d�d"dÊ„Z„�dJ�dGdË„Z…�d�d"dÌ„Z†�dJ�dGdÍ„Z‡	 	 	 	 �dK�dLdÐ„Zˆ�d�dMdÒ„Z‰�ddÓ„ZŠdddÔœ�dNdÖ„Z‹dÿ�dOd×„ZŒeŒZ�eŒZŽ�dP�d"dÙ„Z��d"dÚ„Z��d"dÛ„Z‘�ddÜ„Z’�ddÝ„Z“�ddÞ„Z”�ddß„Z•�d�dQdà„Z–�d�dQdá„Z—�ddâ„Z˜dã„ Z™dä„ Zšdå„ Z›dæ„ Zœdç„ Z�dè„ ZžejŸ        ej         ej¡        gdej¢        ej£        ggZ¤ejŸ        dej         dej¡        d±ej¢        dej£        d±iZ¥�dRdê„Z¦	 	 	 	 	 �dS�dTdí„Z§	 	 	 	 	 �dS�dUdï„Z¨	 	 	 	 	 �dS�dUdð„Z©�d"dñ„Zª�dV�dWdô„Z«dS (X  z�A thin pytorch / numpy compat layer.

Things imported from here have numpy-compatible signatures but operate on
pytorch tensors.
é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Ú_dtypes_implÚ_util)ÚSequence)Ú	ArrayLikeÚArrayLikeOrScalarÚCastingModesÚ	DTypeLikeÚNDArrayÚNotImplementedTypeÚOutArrayÚKFÚar	   Úorderr   Úsubokc                ó*   — |                       ¦   «         S ©N©Úclone)r   r   r   s      úFC:\Projects\DSCons\.venv\Lib\site-packages\torch\_numpy\_funcs_impl.pyÚcopyr   %   s   € ð �7Š7‰9Œ9Ðó    Ú	same_kindÚdstr   ÚsrcÚcastingúCastingModes | NoneÚwherec                ón   — t          j        |f| j        |¬¦  «        \  }|                      |¦  «         d S )N©r   )r   Útypecast_tensorsÚdtypeÚcopy_)r   r   r   r    s       r   Úcopytor&   +   s4   € õ Ô# S F¨C¬I¸wÐGÑGÔG�F€SØ‡I‚Iˆc�N„N€N€N€Nr   Úarysc                 ój   — t          j        | Ž }t          |t          ¦  «        rt	          |¦  «        S |S r   )ÚtorchÚ
atleast_1dÚ
isinstanceÚtupleÚlist©r'   Úress     r   r*   r*   5   ó2   € Ý
Ô
˜DÐ
!€CÝ�#•uÑÔð Ý�C‰yŒyÐàˆ
r   c                 ój   — t          j        | Ž }t          |t          ¦  «        rt	          |¦  «        S |S r   )r)   Ú
atleast_2dr+   r,   r-   r.   s     r   r2   r2   =   r0   r   c                 ój   — t          j        | Ž }t          |t          ¦  «        rt	          |¦  «        S |S r   )r)   Ú
atleast_3dr+   r,   r-   r.   s     r   r4   r4   E   r0   r   c                ó\   — | dk    rt          d¦  «        ‚	 |�|�t          d¦  «        ‚d S d S )N© z&need at least one array to concatenatezQconcatenate() only takes `out` or `dtype` as an argument, but both were provided.)Ú
ValueErrorÚ	TypeError)Útupr$   Úouts      r   Ú_concat_checkr;   M   sK   € Ø
ˆb‚y€yÝÐAÑBÔBÐBà,Ø
€˜5Ð,åð0ñ
ô 
ð 	
ð €Ð,Ð,r   c                óx   — |€|�|€|j         j        n|}nt          j        | Ž }t	          j        | ||¦  «        } | S )z%Figure out dtypes, cast if necessary.)r$   Útorch_dtyper   Úresult_type_implr   r#   )Útensorsr:   r$   r   Ú	out_dtypes        r   Ú_concat_cast_helperrA   Z   sK   € ð €˜%Ð+à-2¨]�C”IÔ)Ð)Àˆ	ˆ	å Ô1°7Ð;ˆ	õ Ô$ W¨i¸ÑAÔA€Gà€Nr   c                óx   — t          j        | d|iŽ\  } }t          | |||¦  «        } t          j        | |¦  «        S )NÚaxis)r   Úaxis_none_flattenrA   r)   Úcat)r?   rC   r:   r$   r   s        r   Ú_concatenaterF   i   sB   € õ Ô+¨WÐ@¸4Ð@Ð@�M€GˆTÝ! '¨3°°wÑ?Ô?€GÝŒ9�W˜dÑ#Ô#Ð#r   Úar_tupleúSequence[ArrayLike]r:   úOutArray | Noner$   úDTypeLike | Nonec                óR   — t          | ||¬¦  «         t          | ||||¬¦  «        }|S )N©r:   )rC   r:   r$   r   )r;   rF   )rG   rC   r:   r$   r   Úresults         r   ÚconcatenaterN   r   s6   € õ �(˜E sÐ+Ñ+Ô+Ð+Ý˜(¨°3¸eÈWÐUÑUÔU€FØ€Mr   ©r$   r   r9   c               ór   — t          | |d ¬¦  «         t          | ||¬¦  «        }t          j        |¦  «        S ©NrL   rO   )r;   rA   r)   Úvstack©r9   r$   r   r?   s       r   rR   rR   ~   ó=   € õ �#�u $Ð'Ñ'Ô'Ð'Ý! #¨U¸GÐDÑDÔD€GÝŒ<˜Ñ Ô Ð r   c               ór   — t          | |d ¬¦  «         t          | ||¬¦  «        }t          j        |¦  «        S rQ   )r;   rA   r)   ÚhstackrS   s       r   rV   rV   Œ   rT   r   c               ór   — t          | |d ¬¦  «         t          | ||¬¦  «        }t          j        |¦  «        S rQ   )r;   rA   r)   ÚdstackrS   s       r   rX   rX   —   s=   € õ �#�u $Ð'Ñ'Ô'Ð'Ý! #¨U¸GÐDÑDÔD€GÝŒ<˜Ñ Ô Ð r   c               ór   — t          | |d ¬¦  «         t          | ||¬¦  «        }t          j        |¦  «        S rQ   )r;   rA   r)   Úcolumn_stackrS   s       r   rZ   rZ   ¤   s>   € õ �#�u $Ð'Ñ'Ô'Ð'Ý! #¨U¸GÐDÑDÔD€GÝÔ˜gÑ&Ô&Ð&r   Úarraysc               óÀ   — t          | ||¬¦  «         t          | ||¬¦  «        }|d         j        dz   }t          j        ||¦  «        }t          j        ||¬¦  «        S )NrL   rO   r   r   ©rC   )r;   rA   Úndimr   Únormalize_axis_indexr)   Ústack)r[   rC   r:   r$   r   r?   Úresult_ndims          r   r`   r`   ²   sd   € õ �&˜% SÐ)Ñ)Ô)Ð)å! &°¸wÐGÑGÔG€GØ˜!”*”/ AÑ%€KÝÔ% d¨KÑ8Ô8€DÝŒ;�w TÐ*Ñ*Ô*Ð*r   ÚarrÚvaluesc                ó¦   — |€=| j         dk    r|                      ¦   «         } |                     ¦   «         }| j         dz
  }t          | |f|¬¦  «        S )Nr   r]   )r^   ÚflattenrF   )rb   rc   rC   s      r   Úappendrf   Â   sP   € Ø€|ØŒ8�qŠ=ˆ=Ø—+’+‘-”-ˆCØ—’Ñ!Ô!ˆØŒx˜!‰|ˆÝ˜˜f˜¨DÐ1Ñ1Ô1Ð1r   c                ó  — t          |t          ¦  «        rt          | |||¦  «        S t          |t          t          f¦  «        rt          | t          |¦  «        |¦  «        S t          dt          |¦  «        › �¦  «        ‚)Nzsplit_helper: )r+   ÚintÚ_split_helper_intr-   r,   Ú_split_helper_listr8   Útype)ÚtensorÚindices_or_sectionsrC   Ústricts       r   Ú_split_helperro   Î   s~   € ÝÐ%¥sÑ+Ô+ð FÝ  Ð)<¸dÀFÑKÔKÐKÝ	Ð'­$µ¨Ñ	7Ô	7ð Få! &­$Ð/BÑ*CÔ*CÀTÑJÔJÐJåÐD­Ð.AÑ)BÔ)BÐDÐDÑEÔEÐEr   c                óv  — t          |t          ¦  «        st          d¦  «        ‚t          j        || j        ¦  «        }| j        |         |}}|dk    rt          ‚||z  dk    r|||z  }}|g|z  }n$|rt          d¦  «        ‚||z  ||z  dz   }}|g|z  }||dz
  g||z
  z  z  }t          j	        | ||¦  «        S )Nzsplit: indices_or_sectionsr   z0array split does not result in an equal divisionr   )
r+   rh   ÚNotImplementedErrorr   r_   r^   Úshaper7   r)   Úsplit)	rl   rm   rC   rn   ÚlÚnÚnumÚszÚlsts	            r   ri   ri   Ø   sç   € ÝÐ)­3Ñ/Ô/ð @Ý!Ð">Ñ?Ô?Ð?åÔ% d¨F¬KÑ8Ô8€Dð Œ<˜ÔÐ2€q€AàˆA‚v€vÝÐàˆ1�u�‚z€zØ�Q˜!‘VˆRˆØˆd�S‰jˆˆàð 	QÝÐOÑPÔPÐPà�a‘%˜˜a™ !™ˆRˆØˆd�S‰jˆàˆB�‰Fˆ8�q˜3‘wÑÑ€CåŒ;�v˜s DÑ)Ô)Ð)r   c                ó�  ‡ ‡— t          |t          ¦  «        st          d¦  «        ‚ˆˆ fd„|D ¦   «         }t          |¦  «        t          |¦  «        z
  }|                     ‰ j        ‰         ¦  «         |d         gd„ t          |dd …         |d d…         ¦  «        D ¦   «         z   }|dg|z  z  }t          j        ‰ |‰¦  «        S )Nz split: indices_or_sections: listc                ó6   •— g | ]}|‰j         ‰         k    ¯|‘ŒS r6   )rr   )Ú.0ÚxrC   rl   s     €€r   ú
<listcomp>z&_split_helper_list.<locals>.<listcomp>ø   s*   ø€ Ð
EÐ
EÐ
E�¨Q°&´,¸tÔ2DÒ-DÐ-Dˆ1Ð-DÐ-DÐ-Dr   r   c                ó   — g | ]
\  }}||z
  ‘ŒS r6   r6   )r{   r   Úbs      r   r}   z&_split_helper_list.<locals>.<listcomp>þ   s    € Ð2Ð2Ð2‘4�1�aˆˆQ‰Ð2Ð2Ð2r   r   éÿÿÿÿ)	r+   r-   rq   Úlenrf   rr   Úzipr)   rs   )rl   rm   rC   rx   Ú	num_extras   ` `  r   rj   rj   ó   sÝ   øø€ ÝÐ)­4Ñ0Ô0ð FÝ!Ð"DÑEÔEÐEð FÐ
EÐ
EÐ
EÐ
EÐ)Ð
EÑ
EÔ
E€CÝÐ'Ñ(Ô(­3¨s©8¬8Ñ3€Ià‡J‚JˆvŒ|˜DÔ!Ñ"Ô"Ð"àˆAŒðà2Ð2�3˜s 1 2 2œw¨¨C¨R¨C¬Ñ1Ô1Ð2Ñ2Ô2ñ3€Cð ˆAˆ3�‰?Ñ€CåŒ;�v˜s DÑ)Ô)Ð)r   Úaryc                ó$   — t          | ||¦  «        S r   ©ro   ©r„   rm   rC   s      r   Úarray_splitrˆ     s   € Ý˜Ð1°4Ñ8Ô8Ð8r   c                ó(   — t          | ||d¬¦  «        S )NT©rn   r†   r‡   s      r   rs   rs     s   € Ý˜Ð1°4ÀÐEÑEÔEÐEr   c                óz   — | j         dk    rt          d¦  «        ‚| j         dk    rdnd}t          | ||d¬¦  «        S )Nr   z3hsplit only works on arrays of 1 or more dimensionsr   TrŠ   ©r^   r7   ro   r‡   s      r   Úhsplitr�     sG   € Ø
„x�1‚}€}ÝÐNÑOÔOÐOØ”˜1’�ˆ1ˆ1 !€DÝ˜Ð1°4ÀÐEÑEÔEÐEr   c                ó\   — | j         dk     rt          d¦  «        ‚t          | |dd¬¦  «        S )Né   z3vsplit only works on arrays of 2 or more dimensionsr   TrŠ   rŒ   ©r„   rm   s     r   Úvsplitr‘     ó4   € Ø
„x�!‚|€|ÝÐNÑOÔOÐOÝ˜Ð1°1¸TÐBÑBÔBÐBr   c                ó\   — | j         dk     rt          d¦  «        ‚t          | |dd¬¦  «        S )Né   z3dsplit only works on arrays of 3 or more dimensionsr�   TrŠ   rŒ   r�   s     r   Údsplitr•     r’   r   r   c                ó,   — t          j        | |¦  «        S r   )r)   Úkron)r   r   s     r   r—   r—     ó   € ÝŒ:�a˜ÑÔÐr   r|   c                ó.   — t          j        | ||¦  «        S r   )r)   Úvander)r|   ÚNÚ
increasings      r   rš   rš   #  s   € ÝŒ<˜˜1˜jÑ)Ô)Ð)r   é2   TÚstartÚstopc                óˆ   — |dk    s|s|st           ‚|€t          j        ¦   «         j        }t	          j        | |||¬¦  «        S ©Nr   ©r$   )rq   r   Údefault_dtypesÚfloat_dtyper)   Úlinspace)rž   rŸ   rv   ÚendpointÚretstepr$   rC   s          r   r¥   r¥   *  sJ   € ð ˆq‚y€y�G€y 8€yÝ!Ð!Ø€}ÝÔ+Ñ-Ô-Ô9ˆåŒ>˜%  s°%Ð8Ñ8Ô8Ð8r   c                ó  — |dk    s|st           ‚t          j        || z  d|dz
  z  ¦  «        }t          j        |¦  «        }t          j        t          j        | ¦  «        |z  t          j        |¦  «        |z  ||¬¦  «        S )Nr   ç      ð?r   )Úbase)rq   r)   ÚpowÚlogÚlogspace)rž   rŸ   rv   r¦   r$   rC   rª   Úlogbases           r   Ú	geomspacer¯   ;  s‚   € ð ˆq‚y€y˜€yÝ!Ð!ÝŒ9�T˜E‘\ 3¨#°©'¡?Ñ3Ô3€DÝŒi˜‰oŒo€GÝŒ>ÝŒ	�%ÑÔ˜7Ñ"ÝŒ	�$‰Œ˜'Ñ!ØØð	ñ ô ð r   ç      $@c                óR   — |dk    s|st           ‚t          j        | ||||¬¦  «        S )Nr   )rª   r$   )rq   r)   r­   )rž   rŸ   rv   r¦   rª   r$   rC   s          r   r­   r­   O  s2   € ð ˆq‚y€y˜€yÝ!Ð!ÝŒ>˜%  s°¸UÐCÑCÔCÐCr   )ÚlikeúArrayLikeOrScalar | NoneÚstepr²   c               ó  — |dk    rt           ‚|€	| €t          ‚|€d| }} | €d} |€Lt          d„ | ||fD ¦   «         ¦  «        rt          j        ¦   «         j        nt          j        ¦   «         j        }|j        rt          j	        n|}t          d„ | ||fD ¦   «         ¦  «        rt          ‚|dk    r| |k    s|dk     r| |k     rt          j        d|¬¦  «        S t          j        | |||¬¦  «        }t          j        ||¦  «        }|S )Nr   c              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S r   )r   Úis_float_or_fp_tensor©r{   r|   s     r   ú	<genexpr>zarange.<locals>.<genexpr>t  s-   è è € ÐVÐV¸Q•<Ô5°aÑ8Ô8ÐVÐVÐVÐVÐVÐVr   c              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S r   )r   Úis_complex_or_complex_tensorr¸   s     r   r¹   zarange.<locals>.<genexpr>z  s-   è è € Ð
UÐ
U¸A�<Ô4°QÑ7Ô7Ð
UÐ
UÐ
UÐ
UÐ
UÐ
Ur   r¢   )ÚZeroDivisionErrorr8   Úanyr   r£   r¤   Ú	int_dtypeÚ
is_complexr)   Úfloat64rq   ÚemptyÚaranger   Úcast_if_needed)rž   rŸ   r´   r$   r²   Ú
work_dtyperM   s          r   rÂ   rÂ   ]  s8  € ð ˆq‚y€yÝÐØ€|˜˜ÝˆØ€|ð ˜ˆtˆØ€}Øˆð €}õ ÐVÐVÀ5È$ÐPTÐBUÐVÑVÔVÑVÔVð9�LÔ'Ñ)Ô)Ô5Ð5åÔ,Ñ.Ô.Ô8ð 	ð
 #(Ô"2Ð=•”�¸€Jõ Ð
UÐ
UÀ%ÈÈtÐATÐ
UÑ
UÔ
UÑUÔUð "Ý!Ð!àˆqŠˆ�U˜T’\�\ t¨a¢x x°E¸D²L°LåŒ{˜1 EÐ*Ñ*Ô*Ð*åŒ\˜%  t°:Ð>Ñ>Ô>€FÝÔ! &¨%Ñ0Ô0€FØ€Mr   ÚCc               ób   — |€t          j        ¦   «         j        }t          j        | |¬¦  «        S ©Nr¢   )r   r£   r¤   r)   rÁ   ©rr   r$   r   r²   s       r   rÁ   rÁ   ‰  ó/   € ð €}ÝÔ+Ñ-Ô-Ô9ˆÝŒ;�u EÐ*Ñ*Ô*Ð*r   Ú	prototypec                ó`   — t          j        | |¬¦  «        }|�|                     |¦  «        }|S rÇ   )r)   Ú
empty_likeÚreshape)rÊ   r$   r   r   rr   rM   s         r   rÌ   rÌ   ™  s5   € õ Ô˜i¨uÐ5Ñ5Ô5€FØÐØ—’ Ñ&Ô&ˆØ€Mr   Ú
fill_valuec               ó°   — t          | t          ¦  «        r| f} |€|j        }t          | t          t          f¦  «        s| f} t          j        | ||¬¦  «        S rÇ   )r+   rh   r$   r,   r-   r)   Úfull)rr   rÎ   r$   r   r²   s        r   rÐ   rÐ   ¦  s^   € õ �%�ÑÔð Ø�ˆØ€}ØÔ ˆÝ�e�e¥T˜]Ñ+Ô+ð Ø�ˆÝŒ:�e˜Z¨uÐ5Ñ5Ô5Ð5r   c                ób   — t          j        | ||¬¦  «        }|�|                     |¦  «        }|S rÇ   )r)   Ú	full_likerÍ   )r   rÎ   r$   r   r   rr   rM   s          r   rÒ   rÒ   ·  s6   € õ Œ_˜Q 
°%Ð8Ñ8Ô8€FØÐØ—’ Ñ&Ô&ˆØ€Mr   c               ób   — |€t          j        ¦   «         j        }t          j        | |¬¦  «        S rÇ   )r   r£   r¤   r)   ÚonesrÈ   s       r   rÔ   rÔ   Æ  s/   € ð €}ÝÔ+Ñ-Ô-Ô9ˆÝŒ:�e 5Ð)Ñ)Ô)Ð)r   c                ó`   — t          j        | |¬¦  «        }|�|                     |¦  «        }|S rÇ   )r)   Ú	ones_likerÍ   ©r   r$   r   r   rr   rM   s         r   rÖ   rÖ   Ò  s4   € õ Œ_˜Q eÐ,Ñ,Ô,€FØÐØ—’ Ñ&Ô&ˆØ€Mr   c               ób   — |€t          j        ¦   «         j        }t          j        | |¬¦  «        S rÇ   )r   r£   r¤   r)   ÚzerosrÈ   s       r   rÙ   rÙ   ß  rÉ   r   c                ó`   — t          j        | |¬¦  «        }|�|                     |¦  «        }|S rÇ   )r)   Ú
zeros_likerÍ   r×   s         r   rÛ   rÛ   ë  s5   € õ Ô˜a uÐ-Ñ-Ô-€FØÐØ—’ Ñ&Ô&ˆØ€Mr   c                ó¨  — |�Ïd| j         z
  }|dk    r |                      d|z  | j        z   ¦  «        } |s| j        d         dk    r| j        } |                      ¦   «         } d|j         z
  }|dk    r |                     d|z  |j        z   ¦  «        }|s|j        d         dk    r|j        }|                     ¦   «         }t          | |fd¬¦  «        } | S )z$Prepare inputs for cov and corrcoef.Nr�   r   ©r   r   r]   )r^   Úviewrr   ÚmTr   rF   )Úx_tensorÚy_tensorÚrowvarÚ
ndim_extras       r   Ú_xy_helper_corrcoefrä   û  sè   € ð Ðà˜œÑ&ˆ
Ø˜Š>ˆ>Ø—}’} T¨JÑ%6¸¼Ñ%GÑHÔHˆHØð 	#˜(œ.¨Ô+¨qÒ0Ð0Ø”{ˆHØ—>’>Ñ#Ô#ˆà˜œÑ&ˆ
Ø˜Š>ˆ>Ø—}’} T¨JÑ%6¸¼Ñ%GÑHÔHˆHØð 	#˜(œ.¨Ô+¨qÒ0Ð0Ø”{ˆHØ—>’>Ñ#Ô#ˆå ¨8Ð 4¸1Ð=Ñ=Ô=ˆà€Or   r¢   ÚyúArrayLike | Nonec               ó&  — |€|�t           ‚t          | ||¦  «        }|j        t          j        k    o|j        }|rt          j        }t          j        ||¦  «        }t          j	        |¦  «        }|r| 
                    t          j        ¦  «        }|S r   )rq   rä   r$   r)   Úfloat16Úis_cpuÚfloat32r   rÃ   ÚcorrcoefÚto)	r|   rå   râ   ÚbiasÚddofr$   Ú	xy_tensorÚis_halfrM   s	            r   rë   rë     sŒ   € ð Ð˜4Ð+å!Ð!Ý# A q¨&Ñ1Ô1€IàŒ¥%¤-Ò/ÐE°YÔ5E€GØð å”ˆåÔ$ Y°Ñ6Ô6€IÝŒ^˜IÑ&Ô&€Fàð *Ø—’�5œ=Ñ)Ô)ˆà€Mr   ÚmÚfweightsÚaweightsc               ó0  — t          | ||¦  «        } |€
|dk    rdnd}| j        t          j        k    o| j        }|rt          j        }t          j        | |¦  «        } t          j        | |||¬¦  «        }	|r|	 	                    t          j        ¦  «        }	|	S )Nr   r   )Ú
correctionró   rò   )
rä   r$   r)   rè   ré   rê   r   rÃ   Úcovrì   )
rñ   rå   râ   rí   rî   rò   ró   r$   rð   rM   s
             r   rö   rö   0  s™   € õ 	˜A˜q &Ñ)Ô)€Aà€|Ø˜A’I�Iˆqˆq 1ˆàŒw�%œ-Ò'Ð5¨Q¬X€GØð å”ˆåÔ˜Q Ñ&Ô&€AÝŒY�q T°HÀxÐPÑPÔP€Fàð *Ø—’�5œ=Ñ)Ô)ˆà€Mr   c                óš  — t          j        | |¦  «        }t          j        | |¦  «        } t          j        ||¦  «        }|dk    r|j        d         dz
  n|}|dk    r#|j        d         dz  dk    rt          d¦  «        ‚| d d d …f         }|d d d d …f         }t          j        j         	                    |||¬¦  «        }|dd d …f         S )NrÐ   r   r   Úsamer�   z#mode='same' and even-length weights)Úpadding)
r   r>   r   rÃ   rr   rq   r)   ÚnnÚ
functionalÚconv1d)r   ÚvÚmodeÚdtrù   ÚaaÚvvrM   s           r   Ú_conv_corr_implr  N  sÝ   € Ý	Ô	& q¨!Ñ	,Ô	,€BÝÔ˜Q Ñ#Ô#€AÝÔ˜Q Ñ#Ô#€Aà $¨¢ ˆaŒg�aŒj˜1‰nˆn°D€Gà�&ÒÐ˜QœW QœZ¨!™^¨qÒ0Ð0õ "Ð"GÑHÔHÐHð 
ˆ4���ˆ7Œ€BØ	
ˆ4��q�q�qˆ=Ô	€BåŒXÔ ×'Ò'¨¨B¸Ð'Ñ@Ô@€Fð �!�Q�Q�Q�$Œ<Ðr   rÐ   rý   c                óŽ   — | j         d         |j         d         k     r|| }} t          j        |d¦  «        }t          | ||¦  «        S )Nr   ©r   )rr   r)   Úflipr  ©r   rý   rþ   s      r   Úconvolver  e  sG   € à„wˆq„z�A”G˜A”JÒÐØ�!ˆ1ˆõ 	Œ
�1�dÑÔ€Aå˜1˜a Ñ&Ô&Ð&r   Úvalidc                óL   — t          j        |¦  «        }t          | ||¦  «        S r   )r)   Úconj_physicalr  r  s      r   Ú	correlater  p  s$   € ÝÔ˜AÑÔ€AÝ˜1˜a Ñ&Ô&Ð&r   Úweightsc               óú   — |                       ¦   «         dk    r|                      dt          ¬¦  «        } t          j        ¦   «         j        }t          j        | f|d¬¦  «        \  } t          j	        | ||¦  «        S )Nr   r¢   Úsafer"   )
ÚnumelÚ	new_emptyrh   r   r£   r¾   r   r#   r)   Úbincount)r|   r  Ú	minlengthr¾   s       r   r  r  x  sh   € Ø‡w‚w�y„y�A‚~€~à�KŠK˜¥ˆKÑ%Ô%ˆåÔ+Ñ-Ô-Ô7€IÝÔ! 1 $¨	¸6ÐBÑBÔB�D€QåŒ>˜!˜W iÑ0Ô0Ð0r   Ú	conditionc               óþ   — |d u |d u k    rt          d¦  «        ‚| j        t          j        k    r|                      t          j        ¦  «        } |€|€t          j        | ¦  «        }nt          j        | ||¦  «        }|S )Nz1either both or neither of x and y should be given)r7   r$   r)   Úboolrì   r    )r  r|   rå   rM   s       r   r    r    ƒ  sz   € ð 	
ˆTˆ	�q˜D�yÒ!Ð!ÝÐLÑMÔMÐMà„�%œ*Ò$Ð$Ø—L’L¥¤Ñ,Ô,ˆ	à€y�Q�YÝ”˜YÑ'Ô'ˆˆå”˜Y¨¨1Ñ-Ô-ˆØ€Mr   c                ó   — | j         S r   )r^   ©r   s    r   r^   r^   ™  s	   € ØŒ6€Mr   c                ó*   — t          | j        ¦  «        S r   )r,   rr   r  s    r   rr   rr   �  s   € Ý�”‰>Œ>Ðr   c                óH   — |€|                       ¦   «         S | j        |         S r   )r  rr   )r   rC   s     r   Úsizer  ¡  s!   € Ø€|Ø�wŠw‰yŒyÐàŒw�tŒ}Ðr   c                ó`   — t          j        | j        |¦  «        }|                      |¦  «        S r   )r   Úexpand_shaperr   rÞ   )r   rC   rr   s      r   Úexpand_dimsr  «  s&   € ÝÔ˜qœw¨Ñ-Ô-€EØ�6Š6�%‰=Œ=Ðr   c                ó¨   — |€"t          t          | j        ¦  «        ¦  «        }nt          j        || j        ¦  «        }t          j        | |¦  «        S r   )r,   Úranger^   r   Únormalize_axis_tupler)   r  )rñ   rC   s     r   r  r  °  sD   € à€|Ý•U˜1œ6‘]”]Ñ#Ô#ˆˆåÔ)¨$°´Ñ7Ô7ˆÝŒ:�a˜ÑÔÐr   c                ó*   — t          j        | ¦  «        S r   )r)   Úflipud©rñ   s    r   r"  r"  ¹  ó   € ÝŒ<˜‰?Œ?Ðr   c                ó*   — t          j        | ¦  «        S r   )r)   Úfliplrr#  s    r   r&  r&  ½  r$  r   ©r   r   c                ób   — t          j        || j        ¦  «        }t          j        | ||¦  «        S r   )r   r   r^   r)   Úrot90)rñ   ÚkÚaxess      r   r)  r)  Á  s*   € ÝÔ% d¨A¬FÑ3Ô3€DÝŒ;�q˜!˜TÑ"Ô"Ð"r   Úarrayc                ó.   — t          j        | |¬¦  «        S )N)r  )r)   Úbroadcast_to)r,  rr   r   s      r   r.  r.  É  s   € ÝÔ˜e¨%Ð0Ñ0Ô0Ð0r   c                 ó   — t          j        | Ž S r   )r)   Úbroadcast_shapes)Úargss    r   r0  r0  Ï  s   € ÝÔ! 4Ð(Ð(r   )r   r1  c                ó   — t          j        |Ž S r   )r)   Úbroadcast_tensors)r   r1  s     r   Úbroadcast_arraysr4  Ó  s   € ÝÔ" DÐ)Ð)r   Úxy)r   ÚsparseÚindexingÚxic                óž  ‡— t          |¦  «        }|dvrt          d¦  «        ‚d|z  Šˆfd„t          |¦  «        D ¦   «         }|dk    rX|dk    rR|d                              d‰d	d …         z   ¦  «        |d<   |d                              d
‰d	d …         z   ¦  «        |d<   |st	          j        |Ž }| rd„ |D ¦   «         }t          |¦  «        S )N)r5  Úijz.Valid values for `indexing` are 'xy' and 'ij'.rÝ   c                ór   •— g | ]3\  }}|                      ‰d |…         dz   ‰|dz   d …         z   ¦  «        ‘Œ4S )N)r€   r   )rÍ   )r{   Úir|   Ús0s      €r   r}   zmeshgrid.<locals>.<listcomp>Þ  sF   ø€ ÐPÐPÐP¹$¸!¸Qˆa�iŠi˜˜2˜A˜2œ ™¨¨A°©E¨G¨G¬Ñ4Ñ5Ô5ÐPÐPÐPr   r5  r   r   )r   r€   r�   )r€   r   c                ó6   — g | ]}|                      ¦   «         ‘ŒS r6   r   r¸   s     r   r}   zmeshgrid.<locals>.<listcomp>ê  s    € Ð,Ð,Ð, �!—'’'‘)”)Ð,Ð,Ð,r   )r�   r7   Ú	enumeraterÍ   r)   r3  r-   )r   r6  r7  r8  r^   Úoutputr=  s         @r   ÚmeshgridrA  ×  sï   ø€ Ýˆr‰7Œ7€Dà�|Ð#Ð#ÝÐIÑJÔJÐJà	�‰€BØPÐPÐPÐPÅ)ÈBÁ-Ä-ÐPÑPÔP€Fà�4ÒÐ˜D 1šH˜Hà˜1”I×%Ò% g°°1°2°2´Ñ&6Ñ7Ô7ˆˆq‰	Ø˜1”I×%Ò% g°°1°2°2´Ñ&6Ñ7Ô7ˆˆq‰	àð 2åÔ(¨&Ð1ˆàð -Ø,Ð, VÐ,Ñ,Ô,ˆå�‰<Œ<Ðr   c                óV  — t          | ¦  «        } t          | ¦  «        }d|z  }|rd}nt          j        |f| z   |¬¦  «        }t	          | ¦  «        D ]V\  }}t          j        ||¬¦  «                             |d |…         |fz   ||dz   d …         z   ¦  «        }|r||fz   }ŒQ|||<   ŒW|S )NrÝ   r6   r¢   r   )r,   r�   r)   rÁ   r?  rÂ   rÍ   )	Ú
dimensionsr$   r6  r›   rr   r/   r<  ÚdimÚidxs	            r   ÚindicesrF  ï  sÖ   € å�zÑ"Ô"€JÝˆJ‰Œ€AØ�1‰H€EØð :ØˆˆåŒk˜1˜$ Ñ+°5Ð9Ñ9Ô9ˆÝ˜JÑ'Ô'ð ð ‰ˆˆ3ÝŒl˜3 eÐ,Ñ,Ô,×4Ò4Ø�"�1�"ŒI˜˜Ñ  q¨1¡u w w¤Ñ/ñ
ô 
ˆð ð 	Ø˜˜‘,ˆCˆCàˆC�‰FˆFØ€Jr   c                ó,   — t          j        | |¦  «        S r   )r)   Útril©rñ   r*  s     r   rH  rH    r˜   r   c                ó,   — t          j        | |¦  «        S r   )r)   ÚtriurI  s     r   rK  rK  
  r˜   r   c                ó8   — |€| }t          j        | ||¬¦  «        S ©N©Úoffset)r)   Útril_indices©ru   r*  rñ   s      r   rP  rP    ó$   € Ø€yØˆÝÔ˜a ¨1Ð-Ñ-Ô-Ð-r   c                ó8   — |€| }t          j        | ||¬¦  «        S rM  )r)   Útriu_indicesrQ  s      r   rT  rT    rR  r   c                ó�   — | j         dk    rt          d¦  «        ‚t          j        | j        d         | j        d         |¬¦  «        S ©Nr�   zinput array must be 2-dr   r   rN  )r^   r7   r)   rP  rr   ©rb   r*  s     r   Útril_indices_fromrX    ó@   € Ø
„x�1‚}€}ÝÐ2Ñ3Ô3Ð3åÔ˜cœi¨œl¨C¬I°a¬LÀÐCÑCÔCÐCr   c                ó�   — | j         dk    rt          d¦  «        ‚t          j        | j        d         | j        d         |¬¦  «        S rV  )r^   r7   r)   rT  rr   rW  s     r   Útriu_indices_fromr[  !  rY  r   c               óf   — |€| }t          j        | |f|¬¦  «        }t          j        ||¬¦  «        S )Nr¢   )Údiagonal)r)   rÔ   rH  )r›   ÚMr*  r$   r²   rl   s         r   Útrir_  (  s;   € ð 	€yØˆÝŒZ˜˜A˜ eÐ,Ñ,Ô,€FÝŒ:�f qÐ)Ñ)Ô)Ð)r   çñhãˆµøä>ç:Œ0âŽyE>c                ó²   — t          j        | |¦  «        }t          j        | |¦  «        } t          j        ||¦  «        }t	          j        | ||||¬¦  «        S ©N)ÚrtolÚatolÚ	equal_nan)r   r>   r   rÃ   r)   Úisclose©r   r   rd  re  rf  r$   s         r   rg  rg  9  sS   € ÝÔ)¨!¨QÑ/Ô/€EÝÔ˜Q Ñ&Ô&€AÝÔ˜Q Ñ&Ô&€AÝŒ=˜˜A D¨t¸yÐIÑIÔIÐIr   c                ó²   — t          j        | |¦  «        }t          j        | |¦  «        } t          j        ||¦  «        }t	          j        | ||||¬¦  «        S rc  )r   r>   r   rÃ   r)   Úallcloserh  s         r   rj  rj  @  sS   € ÝÔ)¨!¨QÑ/Ô/€EÝÔ˜Q Ñ&Ô&€AÝÔ˜Q Ñ&Ô&€AÝŒ>˜!˜Q T°À	ÐJÑJÔJÐJr   c                óÚ   — | j         |j         k    rdS | |k    }|r,|t          j        | ¦  «        t          j        |¦  «        z  z  }|                     ¦   «                              ¦   «         S ©NF)rr   r)   ÚisnanÚallÚitem)Úa1Úa2rf  Úconds       r   Ú_tensor_equalrs  G  s^   € à	„x�2”8ÒÐØˆuØ�Š8€DØð :Ø•u”{ 2‘”­¬°R©¬Ñ8Ñ9ˆØ�8Š8‰:Œ:�?Š?ÑÔÐr   rp  rq  c                ó&   — t          | ||¬¦  «        S )N©rf  )rs  )rp  rq  rf  s      r   Úarray_equalrv  Q  s   € Ý˜˜R¨9Ð5Ñ5Ô5Ð5r   c                óx   — 	 t          j        | |¦  «        \  }}n# t          $ r Y dS w xY wt          ||¦  «        S rl  )r)   r3  ÚRuntimeErrorrs  )rp  rq  Úa1_tÚa2_ts       r   Úarray_equivr{  U  sS   € ðÝÔ,¨R°Ñ4Ô4‰
ˆˆdˆdøÝð ð ð àˆuˆuðøøøõ ˜˜tÑ$Ô$Ð$s   ‚ ›
)¨)ç        r   c                óÞ   — |                       ¦   «         rBt          j        | j        |||¬¦  «        }t          j        | j        |||¬¦  «        }|d|z  z   S t          j        | |||¬¦  «        S )N)ÚnanÚposinfÚneginfy              ð?)r¿   r)   Ú
nan_to_numÚrealÚimag)r|   r   r~  r  r€  ÚreÚims          r   r�  r�  _  ss   € ð 	‡|‚|�~„~ð JÝÔ˜aœf¨#°fÀVÐLÑLÔLˆÝÔ˜aœf¨#°fÀVÐLÑLÔLˆØ�B˜‘G‰|ÐåÔ  s°6À&ÐIÑIÔIÐIr   ÚraiserF  rþ   c                ó°   — t          j        | |¬¦  «        \  \  } }t          j        || j        ¦  «        }t	          d ¦  «        f|z  |dfz   }| |         }|S )Nr]   .)r   rD   r_   r^   Úslice)r   rF  rC   r:   rþ   rE  rM   s          r   Útaker‰  n  s\   € õ Ô(¨°Ð6Ñ6Ô6�J�D€Qˆ$ÝÔ% d¨A¬FÑ3Ô3€DÝ�‰;Œ;ˆ.˜4Ñ
 7¨C .Ñ
0€CØˆsŒV€FØ€Mr   c                ó˜   — t          j        | |¬¦  «        \  \  } }t          j        || j        ¦  «        }t	          j        | ||¦  «        S ©Nr]   )r   rD   r_   r^   r)   Útake_along_dim)rb   rF  rC   s      r   Útake_along_axisr�  |  sF   € ÝÔ*¨3°TÐ:Ñ:Ô:�L�F€SˆDÝÔ% d¨C¬HÑ5Ô5€DÝÔ  W¨dÑ3Ô3Ð3r   c                óR  — |                      | j        ¦  «        }|                     ¦   «         |                     ¦   «         k    rr|                     ¦   «         |                     ¦   «         z   dz
  |                     ¦   «         z  }|                     d¦  «                             |f|j        z   ¦  «        }|                     ¦   «         |                     ¦   «         k     r0|                     ¦   «         }|d |                     ¦   «         …         }|                      ||¦  «         d S ©Nr   r   )rk   r$   r  Ú	unsqueezeÚexpandrr   re   Úput_)r   rF  rc   rþ   rý   Úratios         r   Úputr”  ‚  sá   € ð 	�Š�A”GÑÔ€Að ‡}‚}�„˜Ÿš™œÒ"Ð"Ø—’‘” 1§7¢7¡9¤9Ñ,¨qÑ0°Q·W²W±Y´YÑ>ˆØ�KŠK˜‰NŒN×!Ò! 5 (¨Q¬WÑ"4Ñ5Ô5ˆð ‡}‚}�„˜Ÿš™œÒ"Ð"Ø�IŠI‰KŒKˆØÐ�—’‘”ÐÔ ˆØ‡F‚Fˆ7�AÑÔÐØˆ4r   c                ó\  — t          j        | |¬¦  «        \  \  } }t          j        || j        ¦  «        }t	          j        ||¦  «        \  }}t          j        || j        ¦  «        }t	          j        | |||¦  «        }|  	                    | 
                    | j        ¦  «        ¦  «         d S r‹  )r   rD   r_   r^   r)   r3  rÃ   r$   Úscatterr%   rÍ   rr   )rb   rF  rc   rC   rM   s        r   Úput_along_axisr—  —  s•   € ÝÔ*¨3°TÐ:Ñ:Ô:�L�F€SˆDÝÔ% d¨C¬HÑ5Ô5€DåÔ-¨g°vÑ>Ô>�O€GˆVÝÔ! &¨#¬)Ñ4Ô4€FÝŒ]˜3  g¨vÑ6Ô6€FØ‡I‚Iˆf�nŠn˜SœYÑ'Ô'Ñ(Ô(Ð(Øˆ4r   Úchoicesc                óÞ   ‡— t          j        t          j        ‰Ž ¦  «        Šˆfd„t          ‰j        ¦  «        D ¦   «         }| |d<   ‰t          |¦  «                                      d¦  «        S )Nc                ó”   •— g | ]D\  }}t          j        |¦  «                             d |z  |fz   d ‰j        |z
  dz
  z  z   ¦  «        ‘ŒES )rÝ   r   )r)   rÂ   rÞ   r^   )r{   r<  rD  r˜  s      €r   r}   zchoose.<locals>.<listcomp>­  sf   ø€ ð ð ð áˆAˆsõ 	Œ�SÑÔ×Ò˜t a™x¨3¨&Ñ0°4¸7¼<È!Ñ;KÈaÑ;OÑ3PÑPÑQÔQðð ð r   r   )r)   r`   r3  r?  rr   r,   Úsqueeze)r   r˜  r:   rþ   Úidx_lists    `   r   Úchooser�  ¢  sx   ø€ õ Œk�%Ô1°7Ð;Ñ<Ô<€Gðð ð ð å ¤Ñ.Ô.ðñ ô €Hð
 €HˆQ�KØ•5˜‘?”?Ô#×+Ò+¨AÑ.Ô.Ð.r   ru  ÚarÚreturn_indexrf  c               ó    — t          j        | |¬¦  «        \  \  } }t          j        || j        ¦  «        }t	          j        | |||¬¦  «        }|S )Nr]   )Úreturn_inverseÚreturn_countsrD  )r   rD   r_   r^   r)   Úunique)rž  rŸ  r¡  r¢  rC   rf  rM   s          r   r£  r£  ¹  sY   € õ Ô)¨"°4Ð8Ñ8Ô8�K�E€Rˆ4ÝÔ% d¨B¬GÑ4Ô4€DåŒ\Ø
˜>¸ÈDðñ ô €Fð €Mr   c                ó.   — t          j        | d¬¦  «        S )NT©Úas_tuple)r)   Únonzeror  s    r   r§  r§  Ì  s   € ÝŒ=˜ TÐ*Ñ*Ô*Ð*r   c                ó*   — t          j        | ¦  «        S r   )r)   Úargwherer  s    r   r©  r©  Ð  ó   € ÝŒ>˜!ÑÔÐr   c                ó^   — t          j        | ¦  «                             d¬¦  «        d         S )NTr¥  r   )r)   re   r§  r  s    r   Úflatnonzeror¬  Ô  s(   € ÝŒ=˜ÑÔ×#Ò#¨TÐ#Ñ2Ô2°1Ô5Ð5r   ÚminÚmaxc                ó.   — t          j        | ||¦  «        S r   )r)   Úclamp)r   r­  r®  r:   s       r   Úclipr±  Ø  s   € õ Œ;�q˜#˜sÑ#Ô#Ð#r   Úrepeatsr
   c                ó.   — t          j        | ||¦  «        S r   )r)   Úrepeat_interleave)r   r²  rC   s      r   Úrepeatrµ  á  s   € ÝÔ" 1 g¨tÑ4Ô4Ð4r   ÚAc                ó\   — t          |t          ¦  «        r|f}t          j        | |¦  «        S r   )r+   rh   r)   Útile)r¶  Úrepss     r   r¸  r¸  å  s-   € Ý�$�ÑÔð ØˆwˆÝŒ:�a˜ÑÔÐr   c                óž  — |€| S t          |t          ¦  «        r|f}|                      ¦   «         } d}|D ]}||z  }|dk     rt          d¦  «        ‚Œ|                      ¦   «         dk    s|dk    rt          j        || j        ¬¦  «        S | |                      ¦   «         z   }t          | f|z  ¦  «        d |…         } t          | |¦  «        S )Nr   r   z0all elements of `new_shape` must be non-negativer¢   )
r+   rh   re   r7   r  r)   rÙ   r$   rN   rÍ   )r   Ú	new_shapeÚnew_sizeÚ
dim_lengthr²  s        r   Úresizer¾  ë  sç   € ð ÐØˆå�)�SÑ!Ô!ð !Ø�Lˆ	à	�	Š	‰Œ€Aà€HØð Qð Qˆ
Ø�JÑˆØ˜Š>ˆ>ÝÐOÑPÔPÐPð ð 	‡w‚w�y„y�A‚~€~˜ Qš˜åŒ{˜9¨A¬GÐ4Ñ4Ô4Ð4à�	˜QŸWšW™YœYÑ&Ð'€GÝ�Q�D˜7‘NÑ#Ô# I X IÔ.€Aå�1�iÑ Ô Ð r   c                ó˜   — t          j        || j        ¦  «        }t          j        || j        ¦  «        }t          j        | |||¦  «        S r   )r   r_   r^   r)   r]  )r   rO  Úaxis1Úaxis2s       r   r]  r]  	  s@   € ÝÔ& u¨a¬fÑ5Ô5€EÝÔ& u¨a¬fÑ5Ô5€EÝŒ>˜!˜V U¨EÑ2Ô2Ð2r   c                ó`   — t          j        | |||¬¦  «                             d|¬¦  «        }|S )N)Údim1Údim2r€   r¢   )r)   r]  Úsum)r   rO  rÀ  rÁ  r$   r:   rM   s          r   ÚtracerÆ    s4   € õ Œ^˜A˜v¨E¸Ð>Ñ>Ô>×BÒBÀ2ÈUÐBÑSÔS€FØ€Mr   c               óÀ   — |€t          j        ¦   «         j        }|€| }t          j        | ||¬¦  «        }|                     |¦  «                             d¦  «         |S )Nr¢   r   )r   r£   r¤   r)   rÙ   r]  Úfill_)r›   r^  r*  r$   r   r²   Úzs          r   ÚeyerÊ    s]   € ð €}ÝÔ+Ñ-Ô-Ô9ˆØ€yØˆÝŒ�A�q Ð&Ñ&Ô&€AØ‡J‚Jˆq�M„M×Ò˜ÑÔÐØ€Hr   c               ó.   — t          j        | |¬¦  «        S rÇ   )r)   rÊ  )ru   r$   r²   s      r   ÚidentityrÌ  -  s   € ÝŒ9�Q˜eÐ$Ñ$Ô$Ð$r   c                ó,   — t          j        | |¦  «        S r   )r)   Údiag©rý   r*  s     r   rÎ  rÎ  1  r˜   r   c                ó,   — t          j        | |¦  «        S r   )r)   ÚdiagflatrÏ  s     r   rÑ  rÑ  5  s   € ÝŒ>˜!˜QÑÔÐr   r�   c                ó6   — t          j        | ¦  «        }|f|z  S r   )r)   rÂ   )ru   r^   rE  s      r   Údiag_indicesrÓ  9  s   € Ý
Œ,�q‰/Œ/€CØˆ6�D‰=Ðr   c                óÄ   — | j         dk    st          d¦  «        ‚| j        }|dd …         |d d…         k    rt          d¦  «        ‚t          |d         | j         ¦  «        S )Nr�   z input array must be at least 2-dr   r€   z/All dimensions of input must be of equal lengthr   )r^   r7   rr   rÓ  )rb   Úss     r   Údiag_indices_fromrÖ  >  sc   € ØŒ8�qŠ=ˆ=ÝÐ;Ñ<Ô<Ð<ð 	Œ	€AØˆˆˆ„u��#�2�#”‚€ÝÐJÑKÔKÐKÝ˜˜!œ˜cœhÑ'Ô'Ð'r   Úvalc                óÀ  — | j         dk     rt          d¦  «        ‚|                     ¦   «         dk    r|s|                      |¦  «         | S |j         dk    r|                     d¦  «        }| j         dk    rÀ| j        d         | j        d         k    }|r|sD|                      ¦   «         }|                     |d |                     ¦   «         …         ¦  «         nƒ| j        \  }}t          j	        |||dz   z  z
  ¦  «        }||z  }||z  }	|d |                     ¦   «         …         | |	|dz   z  |z   |f<   n't          | ¦  «        }|d | j        d         …         | |<   | S )Nr�   zarray must be at least 2-dr   r   )r^   r7   r  Úfill_diagonal_r�  rr   r]  r%   r)   rÂ   rÖ  )
r   r×  ÚwrapÚtallrÎ  Úmax_Úmin_rE  ÚmodÚdivs
             r   Úfill_diagonalrà  I  sg  € Ø„v�‚z€zÝÐ5Ñ6Ô6Ð6Ø
‡y‚y�{„{�aÒÐ ÐØ	×Ò˜ÑÔÐØˆà
„x�1‚}€}Ø�mŠm˜AÑÔˆð 	„v�‚{€{ØŒw�qŒz˜AœG AœJÒ&ˆàð 
	B˜4ð 
	Bà—:’:‘<”<ˆDØ�JŠJ�s˜>˜TŸZšZ™\œ\˜>Ô*Ñ+Ô+Ð+Ð+ð œ‰JˆD�$Ý”,˜t d¨t°a©xÑ&8Ñ8Ñ9Ô9ˆCØ˜‘*ˆCØ˜‘+ˆCØ/2°=°S·Y²Y±[´[°=Ô/AˆAˆs�d˜Q‘hÑ #Ñ% sÐ+Ñ,Ð,å Ñ"Ô"ˆà�\�q”w˜q”z�\Ô"ˆˆ#‰à€Hr   c               óv  — t          j        | |¦  «        \  }}|j        dk    r|                     ¦   «         }|j        dk    r|                     ¦   «         }t	          j        ||¦  «        }|t           j        k    o|j        p|j        }|t           j        k    }|rt           j	        }n|rt           j
        }t          j        ||¦  «        }t          j        ||¦  «        }t          j        ||¦  «        }|r |                     t           j        ¦  «        }n!|r|                     t           j        ¦  «        }|S ©Nr   )r)   r*   r^   re   r   r>   rè   ré   r  rê   Úuint8r   rÃ   Úvdotrì   )r   r   Út_aÚt_br$   rð   Úis_boolrM   s           r   rä  rä  k  s  € õ Ô  1Ñ%Ô%�H€CˆØ
„x�!‚|€|Ø�kŠk‰mŒmˆØ
„x�!‚|€|Ø�kŠk‰mŒmˆåÔ)¨#¨sÑ3Ô3€EØ•u”}Ò$ÐC¨#¬*Ð*B¸¼
€GØ•u”zÒ!€Gð ð Ý”ˆˆØ	ð Ý”ˆå
Ô
˜s EÑ
*Ô
*€CÝ
Ô
˜s EÑ
*Ô
*€CåŒZ˜˜SÑ!Ô!€Fàð 'Ø—’�5œ=Ñ)Ô)ˆˆØ	ð 'Ø—’�5œ:Ñ&Ô&ˆà€Mr   c                óþ   — t          |t          t          f¦  «        rd„ |D ¦   «         }t          j        | |¦  «        }t          j        | |¦  «        } t          j        ||¦  «        }t          j        | ||¬¦  «        S )Nc                óB   — g | ]}t          |t          ¦  «        r|gn|‘ŒS r6   ©r+   rh   )r{   Úaxs     r   r}   ztensordot.<locals>.<listcomp>�  s-   € ÐCÐCÐC¸�
 2¥sÑ+Ô+Ð3���°ÐCÐCÐCr   )Údims)	r+   r-   r,   r   r>   r   rÃ   r)   Ú	tensordot)r   r   r+  Útarget_dtypes       r   rí  rí  ‹  sy   € Ý�$��u˜Ñ&Ô&ð DØCÐC¸dÐCÑCÔCˆåÔ0°°AÑ6Ô6€LÝÔ˜Q Ñ-Ô-€AÝÔ˜Q Ñ-Ô-€AåŒ?˜1˜a dÐ+Ñ+Ô+Ð+r   c                ód  — t          j        | |¦  «        }|t          j        k    }|rt          j        }t          j        | |¦  «        } t          j        ||¦  «        }| j        dk    s|j        dk    r| |z  }nt          j        | |¦  «        }|r| 	                    t          j        ¦  «        }|S ©Nr   )
r   r>   r)   r  rã  r   rÃ   r^   Úmatmulrì   )r   r   r:   r$   rç  rM   s         r   Údotrò  –  s¤   € ÝÔ)¨!¨QÑ/Ô/€EØ•u”zÒ!€GØð Ý”ˆåÔ˜Q Ñ&Ô&€AÝÔ˜Q Ñ&Ô&€Aà„v�‚{€{�a”f ’k�kØ�Q‘ˆˆå”˜a Ñ#Ô#ˆàð 'Ø—’�5œ:Ñ&Ô&ˆà€Mr   c               óÊ  — t          j        | |¦  «        }|t          j        k    o| j        p|j        }|t          j        k    }|rt          j        }n|rt          j        }t          j	        | |¦  «        } t          j	        ||¦  «        }t          j
        | |¦  «        }|r |                     t          j        ¦  «        }n!|r|                     t          j        ¦  «        }|S r   )r   r>   r)   rè   ré   r  rê   rã  r   rÃ   Úinnerrì   )r   r   r$   rð   rç  rM   s         r   rô  rô  ª  sÌ   € ÝÔ)¨!¨QÑ/Ô/€EØ•u”}Ò$Ð?¨!¬(Ð*>°a´h€GØ•u”zÒ!€Gàð å”ˆˆØ	ð Ý”ˆåÔ˜Q Ñ&Ô&€AÝÔ˜Q Ñ&Ô&€AåŒ[˜˜AÑÔ€Fàð 'Ø—’�5œ=Ñ)Ô)ˆˆØ	ð 'Ø—’�5œ:Ñ&Ô&ˆØ€Mr   c                ó,   — t          j        | |¦  «        S r   )r)   Úouter)r   r   r:   s      r   rö  rö  Á  s   € ÝŒ;�q˜!ÑÔÐr   r€   c                óf  — |�
|fdz  \  }}}t          j        || j        ¦  «        }t          j        ||j        ¦  «        }t          j        | |d¦  «        } t          j        ||d¦  «        }d}| j        d         dvs|j        d         dvrt          |¦  «        ‚t          | d         j        |d         j        ¦  «        }| j        d         dk    s|j        d         dk    r'|dz  }t          j        |t          |¦  «        ¦  «        }t          j
        | |¦  «        }t          j        ||¬¦  «        }	t          j        | |¦  «        } t          j        ||¦  «        }| d         }
| d         }| j        d         dk    r| d	         }|d         }|d         }|j        d         dk    r|d	         }|	j        d
k    r)|	j        d         dk    r|	d         }|	d         }|	d	         }| j        d         dk    ro|j        d         dk    r|
|z  ||z  z
  |	d<   |	S |j        d         dk    rt          d|j        d         › �¦  «        ‚||z  |d<   |
 |z  |d<   |
|z  ||z  z
  |d<   n·| j        d         dk    rt          d| j        d         › �¦  «        ‚|j        d         dk    r+||z  ||z  z
  |d<   ||z  |
|z  z
  |d<   |
|z  ||z  z
  |d<   nM|j        d         dk    rt          d|j        d         › �¦  «        ‚| |z  |d<   ||z  |d<   |
|z  ||z  z
  |d<   t          j        |	d|¦  «        S )Nr”   r€   zDincompatible dimensions for cross product
(dimension must be 2 or 3))r�   r”   ).r   )r”   r¢   ).r   ).r�   r   r�   .zb.shape[-1] must be 3, got za.shape[-1] must be 3, got zb.shape[-1] must be 2, got )r   r_   r^   r)   Úmoveaxisrr   r7   r0  r�   r   r>   rÁ   rÃ   ÚAssertionError)r   r   ÚaxisaÚaxisbÚaxiscrC   Úmsgrr   r$   ÚcpÚa0rp  rq  Úb0Úb1Úb2Úcp0Úcp1Úcp2s                      r   Úcrossr  Å  ss  € ð ÐØ#˜g¨™kÑˆˆu�eõ Ô& u¨a¬fÑ5Ô5€EÝÔ& u¨a¬fÑ5Ô5€Eõ 	Œ�q˜% Ñ$Ô$€AÝŒ�q˜% Ñ$Ô$€AØ
Q€CØ„wˆr„{˜&Ð Ð  A¤G¨B¤K°vÐ$=Ð$=Ý˜‰oŒoÐõ ˜Q˜vœYœ_¨a°¬i¬oÑ>Ô>€EØ„wˆr„{�aÒÐ˜1œ7 2œ;¨!Ò+Ð+Ø�‰ˆåÔ*¨5µ#°e±*´*Ñ=Ô=ˆÝÔ)¨!¨QÑ/Ô/€EÝ	Œ�U %Ð	(Ñ	(Ô	(€Bõ 	Ô˜Q Ñ&Ô&€AÝÔ˜Q Ñ&Ô&€Að 
ˆ6Œ€BØ	
ˆ6Œ€BØ„wˆr„{�aÒÐØˆvŒYˆØ	
ˆ6Œ€BØ	
ˆ6Œ€BØ„wˆr„{�aÒÐØˆvŒYˆØ	„w�!‚|€|˜œ œ¨Ò)Ð)Ø�ŒjˆØ�ŒjˆØ�Œjˆà„wˆr„{�aÒÐØŒ7�2Œ;˜!ÒÐà˜2‘g  R¡Ñ'ˆBˆs‰GØˆIàŒw�rŒ{˜aÒÐÝ$Ð%PÀ1Ä7È2Ä;Ð%PÐ%PÑQÔQÐQð ˜B‘wˆC�‰HØ�s˜R‘xˆC�‰HØ˜B‘w  b¡Ñ(ˆC�‰HˆHàŒ7�2Œ;˜!ÒÐÝ Ð!L¸q¼wÀr¼{Ð!LÐ!LÑMÔMÐMØŒ7�2Œ;˜!ÒÐØ˜B‘w  b¡Ñ(ˆC�‰HØ˜B‘w  b¡Ñ(ˆC�‰HØ˜B‘w  b¡Ñ(ˆC�‰HˆHàŒw�rŒ{˜aÒÐÝ$Ð%PÀ1Ä7È2Ä;Ð%PÐ%PÑQÔQÐQØ�s˜R‘xˆC�‰HØ˜B‘wˆC�‰HØ˜B‘w  b¡Ñ(ˆC�‰HåŒ>˜"˜b %Ñ(Ô(Ð(r   r  )r:   r$   r   r   Úoptimizec                ó  ‡— ddl m} ddlm}mŠm}m}	m}
  |	|¦  «        } ||¦  «        }| �t          | |¦  «        st          d¦  «        ‚|dk    rt          d¦  «        ‚t          |d         t          ¦  «         }|r|d d…         d d d	…         }n|d         |dd …         }}ˆfd
„|D ¦   «         }|€t          j        |Ž n|}|t          j        k    ot!          d„ |D ¦   «         ¦  «        }|rt          j        }|t          j        t          j        t          j        t          j        fv }|rt          j        }t/          j        |||¦  «        }ddlm} 	 |                     ¦   «         rct          j        j        j        }t          j        j        j        }|du rd}n|du rdt          j        j        _        |t          j        j        _        |r‹|dd d	…         }t?          |¦  «        d	z  dk    }|r|d         }tA          tB          j"         #                    tI          ||¦  «        ¦  «        ¦  «        }|r| %                    |¦  «         t          j&        |Ž }nt          j&        |g|¢R Ž }|                     ¦   «         r,|t          j        j        _        |t          j        j        _        nE# |                     ¦   «         r,|t          j        j        _        |t          j        j        _        w xY w || |¦  «        } |
|¦  «        S )Nr   )Úndarray)Úmaybe_copy_toÚnormalize_array_likeÚnormalize_castingÚnormalize_dtypeÚwrap_tensorsz'out' must be an arrayr   z#'order' parameter is not supported.r   r€   r�   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r6   r6   )r{   Úopr  s     €r   r}   zeinsum.<locals>.<listcomp>3  s%   ø€ ÐAÐAÐA¨BÐ#Ð# BÑ'Ô'ÐAÐAÐAr   c              3  ó$   K  — | ]}|j         V — Œd S r   )ré   )r{   Úts     r   r¹   zeinsum.<locals>.<genexpr>7  s$   è è € Ð3NÐ3NÀ°A´HÐ3NÐ3NÐ3NÐ3NÐ3NÐ3Nr   )Ú
opt_einsumTÚautoF)'Ú_ndarrayr	  Ú_normalizationsr
  r  r  r  r  r+   r8   rq   Ústrr   r>   r)   rè   rn  rê   rã  Úint8Úint16Úint32Úint64r   r#   Útorch.backendsr  Úis_availableÚbackendsÚstrategyÚenabledr�   r-   Ú	itertoolsÚchainÚfrom_iterabler‚   rf   Úeinsum)r:   r$   r   r   r  Úoperandsr	  r
  r  r  r  Úsublist_formatÚarray_operandsÚ
subscriptsr?   rî  rð   Úis_short_intr  Úold_strategyÚold_enabledÚsublistsÚhas_sublistoutÚ
sublistoutrM   r  s                            @r   r$  r$    sb  ø€ ð "Ð!Ð!Ð!Ð!Ð!ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ˆO˜EÑ"Ô"€EØÐ Ñ(Ô(€GØ
€�z¨#¨wÑ7Ô7€ÝÐ0Ñ1Ô1Ð1Ø�‚|€|Ý!Ð"GÑHÔHÐHõ $ H¨Q¤KµÑ5Ô5Ð5€NØð ?ð " # 2 #œ s s¨ sÔ+ˆˆð &.¨a¤[°(¸1¸2¸2´,�Nˆ
àAÐAÐAÐA°.ÐAÑAÔA€GØ>C¸m•<Ô0°'Ð:Ð:ÐQV€Lð �eœmÒ+ÐNµÐ3NÐ3NÀgÐ3NÑ3NÔ3NÑ0NÔ0N€GØð %Ý”}ˆà¥E¤Kµ´½U¼[Í%Ì+Ð#VÐV€LØð #Ý”{ˆåÔ$ W¨l¸GÑDÔD€Gà)Ð)Ð)Ð)Ð)Ð)ð!<à×"Ò"Ñ$Ô$ð 	:Ý œ>Ô4Ô=ˆLÝœ.Ô3Ô;ˆKð
 ˜4ÐÐØ!��Ø˜UÐ"Ð"Ø49•”Ô)Ô1à19�EŒNÔ%Ô.àð 	8à   1 ”~ˆHÝ  ™]œ]¨QÑ.°!Ò3ˆNØð *Ø% bœ\�
Ý�IœO×9Ò9½#¸gÀxÑ:PÔ:PÑQÔQÑRÔRˆHØð ,Ø—’ 
Ñ+Ô+Ð+å”\ 8Ð,ˆFˆFå”\ *Ð7¨wÐ7Ð7Ð7ˆFð ×"Ò"Ñ$Ô$ð 	<Ø1=�EŒNÔ%Ô.Ø0;�EŒNÔ%Ô-øøð ×"Ò"Ñ$Ô$ð 	<Ø1=�EŒNÔ%Ô.Ø0;�EŒNÔ%Ô-Ð;Ð;Ð;Ð;àˆ]˜3 Ñ'Ô'€FØˆ<˜ÑÔÐs   ÅDJ/ Ê/AK1c                óÊ   — | j         j        rt          d| j         › d�¦  «        ‚t          j        | |¬¦  «        \  \  } }t          j        || j        ¦  «        }|dk    }| ||fS )Nzsorting z is not supportedr]   Ústable)r$   r¿   rq   r   rD   r_   r^   )rl   rC   Úkindr   r0  s        r   Ú_sort_helperr2  m  sr   € Ø„|Ôð NÝ!Ð"L¨V¬\Ð"LÐ"LÐ"LÑMÔMÐMÝÔ-¨f¸4Ð@Ñ@Ô@�O�I€VˆtÝÔ% d¨F¬KÑ8Ô8€Dà�XÒ€Fà�4˜ÐÐr   c                ój   — t          | |||¦  «        \  } }}t          j        | ||¬¦  «        }|j        S ©N)rD  r0  )r2  r)   Úsortrc   )r   rC   r1  r   r0  rM   s         r   r5  r5  x  s9   € å" 1 d¨D°%Ñ8Ô8�O€A€tˆVÝŒZ˜˜t¨FÐ3Ñ3Ô3€FØŒ=Ðr   c                ó\   — t          | |||¦  «        \  } }}t          j        | ||¬¦  «        S r4  )r2  r)   Úargsort)r   rC   r1  r   r0  s        r   r7  r7    s2   € Ý" 1 d¨D°%Ñ8Ô8�O€A€tˆVÝŒ=˜ ¨VÐ4Ñ4Ô4Ð4r   ÚleftÚsorterc                óx   — | j         j        rt          d| j         › �¦  «        ‚t          j        | |||¬¦  «        S )Nzsearchsorted with dtype=)Úsider9  )r$   r¿   rq   r)   Úsearchsorted)r   rý   r;  r9  s       r   r<  r<  „  sE   € ð 	„wÔð HÝ!Ð"F¸Q¼WÐ"FÐ"FÑGÔGÐGåÔ˜a ¨°fÐ=Ñ=Ô=Ð=r   c                óš   — t          j        || j        d¦  «        }t          j        || j        d¦  «        }t          j        | ||¦  «        S )NÚsourceÚdestination)r   r   r^   r)   rø  )r   r>  r?  s      r   rø  rø  �  sB   € ÝÔ'¨°´¸ÑAÔA€FÝÔ,¨[¸!¼&À-ÑPÔP€KÝŒ>˜!˜V [Ñ1Ô1Ð1r   c                ó–   — t          j        || j        ¦  «        }t          j        || j        ¦  «        }t          j        | ||¦  «        S r   )r   r_   r^   r)   Úswapaxes)r   rÀ  rÁ  s      r   rA  rA  –  s>   € ÝÔ& u¨a¬fÑ5Ô5€EÝÔ& u¨a¬fÑ5Ô5€EÝŒ>˜!˜U EÑ*Ô*Ð*r   c                ó–  — | j         }t          j        ||¦  «        }|dk     r||z  }d}d|cxk    r	|dz   k     s"n t          j        |d| d|dz   |fz  ¦  «        ‚||k     r|dz  }||k    r| S t	          t          |¦  «        ¦  «        }|                     |¦  «         |                     ||¦  «         |                      |¦  «        S )Nr   z5'%s' arg requires %d <= %s < %d, but %d was passed inr   rž   )	r^   r   r_   Ú	AxisErrorr-   r  ÚremoveÚinsertrÞ   )r   rC   rž   ru   rý  r+  s         r   ÚrollaxisrF  œ  sæ   € ð 	
Œ€AÝÔ% d¨AÑ.Ô.€DØˆq‚y€yØ�‰
ˆØ
A€CØ�ÐÐÒÐ˜˜Q™ÒÐÐÐÝŒo˜c W¨q¨b°'¸1¸q¹5À%Ð$HÑHÑIÔIÐIØˆe‚|€|à�‰
ˆØˆu‚}€}ð ˆÝ•�a‘”‰>Œ>€DØ‡K‚K�ÑÔÐØ‡K‚K��tÑÔÐØ�6Š6�$‰<Œ<Ðr   c                óº   — |�Dt          j        || j        d¬¦  «        }t          |t          ¦  «        s|ft          |¦  «        z  }t          j        | ||¦  «        S )NT)Úallow_duplicate)r   r   r^   r+   r,   r�   r)   Úroll)r   ÚshiftrC   s      r   rI  rI  ·  sY   € ØÐÝÔ)¨$°´ÈÐMÑMÔMˆÝ˜%¥Ñ'Ô'ð 	)Ø�H�s 4™yœyÑ(ˆEÝŒ:�a˜ Ñ%Ô%Ð%r   c                óÔ   — |dk    r| }n^|€|                       ¦   «         }nGt          |t          ¦  «        r| }|D ]}|                       |¦  «        }Œn|                       |¦  «        }|S )Nr6   )r›  r+   r,   )r   rC   rM   rë  s       r   r›  r›  Â  sx   € Øˆr‚z€zØˆˆØ	ˆØ—’‘”ˆˆå�d�EÑ"Ô"ð 	%ØˆFØð 'ð '�ØŸš 2™œ��ð'ð —Y’Y˜t‘_”_ˆFØ€Mr   c                óf   — t          |¦  «        dk    r|d         n|}|                      |¦  «        S r�  )r�   rÍ   )r   Únewshaper   s      r   rÍ   rÍ   Ñ  s1   € å! (™mœm¨qÒ0Ð0ˆx˜Œ{ˆ{°h€HØ�9Š9�XÑÔÐr   c                óÈ   — |dv r/t          t          t          | j        ¦  «        ¦  «        ¦  «        }nt	          |¦  «        dk    r|d         }|                      |¦  «        S )N)r6   Nr   r   r   )r,   Úreversedr  r^   r�   Úpermute)r   r+  s     r   Ú	transposerQ  Ü  sW   € ð Ð"Ð"Ð"Ý•X�e A¤F™mœmÑ,Ô,Ñ-Ô-ˆˆÝ	ˆT‰Œ�aŠˆØ�AŒwˆØ�9Š9�T‰?Œ?Ðr   c                ó*   — t          j        | ¦  «        S r   )r)   re   )r   r   s     r   ÚravelrS  æ  s   € ÝŒ=˜ÑÔÐr   Úprependrf   c                óÈ  — t          j        || j        ¦  «        }|dk     rt          d|› �¦  «        ‚|dk    r| S |�Ft	          | j        ¦  «        }|j        dk    r|j        |         nd||<   t          j        ||¦  «        }|�Ft	          | j        ¦  «        }|j        dk    r|j        |         nd||<   t          j        ||¦  «        }t          j        | ||||¬¦  «        S )Nr   z#order must be non-negative but got r   )rC   rT  rf   )	r   r_   r^   r7   r-   rr   r)   r.  Údiff)r   ru   rC   rT  rf   rr   s         r   rV  rV  ê  së   € õ Ô% d¨A¬FÑ3Ô3€Dàˆ1‚u€uÝÐB¸qÐBÐBÑCÔCÐCàˆA‚v€vàˆàÐÝ�Q”W‘”ˆØ-4¬\¸AÒ-=Ð-=�g”m DÔ)Ð)À1ˆˆd‰ÝÔ$ W¨eÑ4Ô4ˆàÐÝ�Q”W‘”ˆØ,2¬K¸!ªO¨O�f”l 4Ô(Ð(Àˆˆd‰ÝÔ# F¨EÑ2Ô2ˆåŒ:�a˜ ¨w¸vÐFÑFÔFÐFr   rÉ  c                óV   — t          j        | ¦  «        }|r|dt           j        z  z  }|S )Né´   )r)   ÚangleÚpi)rÉ  ÚdegrM   s      r   rY  rY  
  s,   € ÝŒ[˜‰^Œ^€FØ
ð +Ø˜3¥¤™>Ñ*ˆØ€Mr   c                ó*   — t          j        | ¦  «        S r   )r)   Úsinc©r|   s    r   r]  r]    ó   € ÝŒ:�a‰=Œ=Ðr   )rC   Ú
edge_orderÚfc               óÈ  — | j         }t          j        |¦  «        }|€t          t	          |¦  «        ¦  «        }nt          j        ||¦  «        }t          |¦  «        }t          |¦  «        }|dk    rdg|z  }�nJ|dk    r2t          j        |d         ¦  «        s|d         j         dk    r||z  }�n||k    rýt          |¦  «        }t          |¦  «        D ]Ý\  }	}
t          j        |
¦  «        }
|
j         dk    rŒ%|
j         dk    rt          d¦  «        ‚t          |
¦  «        | j        ||	                  k    rt          d¦  «        ‚|
j        j        s |
j        j        s|
                     ¦   «         }
t          j        |
¦  «        }||d         k                         ¦   «         r|d         }|||	<   ŒÞnt+          d¦  «        ‚|dk    rt          d¦  «        ‚g }t-          d ¦  «        g|z  }t-          d ¦  «        g|z  }t-          d ¦  «        g|z  }t-          d ¦  «        g|z  }| j        }t          j        |¦  «        t0          t2          fv r |                      ¦   «         } t          j        }t7          ||¦  «        D �]P\  }}| j        |         |dz   k     rt          d	¦  «        ‚t          j        | |¬
¦  «        }t          j        |¦  «        p
|j         dk    }t-          dd¦  «        ||<   t-          d d¦  «        ||<   t-          dd¦  «        ||<   t-          dd ¦  «        ||<   |rB| t          |¦  «                 | t          |¦  «                 z
  d|z  z  |t          |¦  «        <   nÚ|dd…         }|dd …         }| |||z   z  z  }||z
  ||z  z  }||||z   z  z  }dg|z  }d||<   |                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|| t          |¦  «                 z  || t          |¦  «                 z  z   || t          |¦  «                 z  z   |t          |¦  «        <   |dk    r´d||<   d||<   d||<   |r|n|d         }| t          |¦  «                 | t          |¦  «                 z
  |z  |t          |¦  «        <   d||<   d||<   d||<   |r|n|d         }| t          |¦  «                 | t          |¦  «                 z
  |z  |t          |¦  «        <   �nqd||<   d||<   d||<   d||<   |rd|z  }d|z  }d|z  }n9|d         }|d         }d|z  |z    |||z   z  z  }||z   ||z  z  }| |||z   z  z  }|| t          |¦  «                 z  || t          |¦  «                 z  z   || t          |¦  «                 z  z   |t          |¦  «        <   d||<   d||<   d||<   d||<   |rd|z  }d|z  }d|z  }n8|d         }|d         }||||z   z  z  }||z    ||z  z  }d|z  |z   |||z   z  z  }|| t          |¦  «                 z  || t          |¦  «                 z  z   || t          |¦  «                 z  z   |t          |¦  «        <   |                     |¦  «         t-          d ¦  «        ||<   t-          d ¦  «        ||<   t-          d ¦  «        ||<   t-          d ¦  «        ||<   �ŒR|dk    r|d         S |S )Nr   r©   r   z&distances must be either scalars or 1dzGwhen 1d, distances must match the length of the corresponding dimensionzinvalid number of argumentsr�   z)'edge_order' greater than 2 not supportedzlShape of array too small to calculate a numerical gradient, at least (edge_order + 1) elements are required.r¢   r€   éþÿÿÿg       @g      ø¿g      à¿éýÿÿÿg      à?g       Àg      ø?)r^   r   Úndarrays_to_tensorsr,   r  r   r�   r   Ú	is_scalarr-   r?  r)   Ú	as_tensorr7   rr   r$   Úis_floating_pointr¿   ÚdoublerV  rn  r8   rˆ  Úpython_type_for_torchrh   r  rÀ   r‚   rÌ   rÍ   rf   )ra  rC   r`  Úvarargsr›   r+  Úlen_axesru   Údxr<  Ú	distancesÚdiffxÚoutvalsÚslice1Úslice2Úslice3Úslice4ÚotypeÚax_dxr:   Úuniform_spacingÚdx1Údx2r   r   Úcrr   Údx_0Údx_ns                                r   Úgradientr}    si  € Ø	Œ€AåÔ'¨Ñ0Ô0€Gà€|Ý•U˜1‘X”X‰ŒˆˆåÔ)¨$°Ñ2Ô2ˆå�4‰yŒy€HÝˆG‰Œ€AØˆA‚v€vàˆU�XÑˆ‰Ø	
ˆaŠˆ•\Ô+¨G°A¬JÑ7Ô7ˆ¸7À1¼:¼?ÈaÒ;OÐ;Oà�xÑˆ‰Ø	
ˆhŠˆå�'‰]Œ]ˆÝ% b™MœMð 	ð 	‰LˆAˆyÝœ¨	Ñ2Ô2ˆIØŒ~ Ò"Ð"ØØ” 1Ò$Ð$Ý Ð!IÑJÔJÐJÝ�9‰~Œ~ ¤¨¨a¬Ô!1Ò1Ð1Ý ð@ñô ð ð ”OÔ5ð /¸¼Ô9Sð /Ø%×,Ò,Ñ.Ô.�	å”J˜yÑ)Ô)ˆEð ˜˜qœÒ!×&Ò&Ñ(Ô(ð !Ø˜aœ�ØˆBˆq‰EˆEð'	õ* Ð5Ñ6Ô6Ð6à�A‚~€~ÝÐDÑEÔEÐEð
 €Gõ �D‰kŒkˆ]˜QÑ€FÝ�D‰kŒkˆ]˜QÑ€FÝ�D‰kŒkˆ]˜QÑ€FÝ�D‰kŒkˆ]˜QÑ€FàŒG€EÝÔ)¨%Ñ0Ô0µS½$°KÐ?Ð?ð �HŠH‰JŒJˆÝ”ˆå˜4 ‘}”}ð c#ñ c#‰ˆˆeØŒ7�4Œ=˜:¨™>Ò)Ð)ÝðCñô ð õ
 Ô˜q¨Ð.Ñ.Ô.ˆõ 'Ô0°Ñ7Ô7ÐJ¸5¼:Èº?ˆõ ˜Q ‘|”|ˆˆt‰Ý˜T 2‘”ˆˆt‰Ý˜Q ‘|”|ˆˆt‰Ý˜Q ‘~”~ˆˆt‰àð 	Ø"#¥E¨&¡M¤MÔ"2°Qµu¸V±}´}Ô5EÑ"EÈ#ÐPUÉ+Ñ!VˆC•�f‘”ÑÐà˜˜"˜”+ˆCØ˜˜˜”)ˆCØ�˜#  s¡Ñ+Ñ,ˆAØ�s‘˜s S™yÑ)ˆAØ�s˜c C™iÑ(Ñ)ˆAà�C˜!‘GˆEØˆE�$‰KØ—	’	˜%Ñ Ô ˆAØ—	’	˜%Ñ Ô ˆAØ—	’	˜%Ñ Ô ˆAð �A•e˜F‘m”mÔ$Ñ$ q¨1­U°6©]¬]Ô+;Ñ';Ñ;¸aÀ!ÅEÈ&ÁMÄMÔBRÑ>RÑRð •�f‘”Ñð
 ˜Š?ˆ?ØˆF�4‰LØˆF�4‰LØˆF�4‰LØ+Ð9�5�5°°q´ˆDà"#¥E¨&¡M¤MÔ"2°Qµu¸V±}´}Ô5EÑ"EÈÑ!MˆC•�f‘”ÑàˆF�4‰LØˆF�4‰LØˆF�4‰LØ+Ð:�5�5°°r´ˆDà"#¥E¨&¡M¤MÔ"2°Qµu¸V±}´}Ô5EÑ"EÈÑ!MˆC•�f‘”ÑÑð ˆF�4‰LØˆF�4‰LØˆF�4‰LØˆF�4‰LØð 	/Ø˜5‘L�Ø˜%‘K�Ø˜5‘L��à˜A”h�Ø˜A”h�Ø˜C‘i #‘oÐ&¨#°°s±Ñ*;Ñ<�Ø˜3‘Y 3¨¡9Ñ-�Ø�D˜C 3¨¡9Ñ-Ñ.�ð �A•e˜F‘m”mÔ$Ñ$ q¨1­U°6©]¬]Ô+;Ñ';Ñ;¸aÀ!ÅEÈ&ÁMÄMÔBRÑ>RÑRð •�f‘”Ñð ˆF�4‰LØˆF�4‰LØˆF�4‰LØˆF�4‰LØð 	<Ø˜%‘K�Ø˜5‘L�Ø˜%‘K��à˜B”i�Ø˜B”i�Ø˜S C¨#¡IÑ.Ñ/�Ø˜C‘i�L C¨#¡IÑ.�Ø˜3‘Y ‘_¨°°c±	Ñ):Ñ;�ð �A•e˜F‘m”mÔ$Ñ$ q¨1­U°6©]¬]Ô+;Ñ';Ñ;¸aÀ!ÅEÈ&ÁMÄMÔBRÑ>RÑRð •�f‘”Ñð 	�Š�sÑÔÐõ ˜T‘{”{ˆˆt‰Ý˜T‘{”{ˆˆt‰Ý˜T‘{”{ˆˆt‰Ý˜T‘{”{ˆˆt‰‰à�1‚}€}Ø�qŒzÐàˆr   c                ó  — |                       ¦   «         rt          j        | |¬¦  «        }n^|                      ¦   «         rHt          j        t          j        | j        |¬¦  «        t          j        | j        |¬¦  «        ¦  «        }n| }|S )N)Údecimals)rh  r)   Úroundr¿   Úcomplexr‚  rƒ  )r   r  r:   rM   s       r   r€  r€  Æ  sƒ   € Ø×ÒÑÔð 
Ý”˜Q¨Ð2Ñ2Ô2ˆˆØ	
�Š‰Œð å”ÝŒK˜œ¨Ð2Ñ2Ô2ÝŒK˜œ¨Ð2Ñ2Ô2ñ
ô 
ˆˆð ˆØ€Mr   éd   c                óð   — t          j        | ¦  «        s| S |dk    r!|t          j        | j        ¦  «        j        z  }t          j        | j        ¦  «        |k     }|                     ¦   «         r| j        n| S râ  )	r)   r¿   Úfinfor$   ÚepsÚabsrƒ  rn  r‚  )r   ÚtolÚmasks      r   Úreal_if_closer‰  Ù  sm   € ÝÔ˜AÑÔð ØˆØ
ˆQ‚w€wð •E”K ¤Ñ(Ô(Ô,Ñ,ˆåŒ9�Q”VÑÔ˜sÒ"€DØ—X’X‘Z”ZÐ&ˆ1Œ6ˆ6 QÐ&r   c                ó*   — t          j        | ¦  «        S r   )r)   r‚  r  s    r   r‚  r‚  æ  r_  r   c                ó`   — |                       ¦   «         r| j        S t          j        | ¦  «        S r   )r¿   rƒ  r)   rÛ   r  s    r   rƒ  rƒ  ê  s*   € Ø‡|‚|�~„~ð ØŒvˆÝÔ˜AÑÔÐr   c                ó€   — t          j        | ¦  «        r| j        dk    S t          j        | t           j        ¬¦  «        S r¡   )r)   r¿   rƒ  rÛ   r  r^  s    r   Ú	iscomplexr�  ð  s9   € ÝÔ˜ÑÔð ØŒv˜Š{ÐÝÔ˜A¥U¤ZÐ0Ñ0Ô0Ð0r   c                ó€   — t          j        | ¦  «        r| j        dk    S t          j        | t           j        ¬¦  «        S r¡   )r)   r¿   rƒ  rÖ   r  r^  s    r   Úisrealr�  ö  s8   € ÝÔ˜ÑÔð ØŒv˜Š{ÐÝŒ?˜1¥E¤JÐ/Ñ/Ô/Ð/r   c                ó*   — t          j        | ¦  «        S r   ©r)   r¿   r^  s    r   Úiscomplexobjr’  ü  s   € ÝÔ˜AÑÔÐr   c                ó,   — t          j        | ¦  «         S r   r‘  r^  s    r   Ú	isrealobjr”     s   € ÝÔ Ñ"Ô"Ð"Ð"r   c                ó*   — t          j        | ¦  «        S r   )r)   Úisneginf©r|   r:   s     r   r–  r–    rª  r   c                ó*   — t          j        | ¦  «        S r   )r)   Úisposinfr—  s     r   r™  r™    rª  r   c                ó@   — t           j                             | ¦  «        S r   )r)   ÚspecialÚi0r^  s    r   rœ  rœ    s   € ÝŒ=×Ò˜AÑÔÐr   c                óx   — ddl m} 	  || ¦  «        }|                     ¦   «         dk    S # t          $ r Y dS w xY w)Nr   )r  F)r  r  r  Ú	Exception)r   r  r  s      r   ÚisscalarrŸ    s]   € à5Ð5Ð5Ð5Ð5Ð5ðØ Ð  Ñ#Ô#ˆØ�wŠw‰yŒy˜AŠ~ÐøÝð ð ð Øˆuˆuðøøøs   ˆ"+ «
9¸9c                ó`   — t          j        ¦   «         j        }t          j        | d|¬¦  «        S ©NF)Úperiodicr$   )r   r£   r¤   r)   Úhamming_window©r^  r$   s     r   Úhammingr¥    s+   € ÝÔ'Ñ)Ô)Ô5€EÝÔ ¨E¸Ð?Ñ?Ô?Ð?r   c                ó`   — t          j        ¦   «         j        }t          j        | d|¬¦  «        S r¡  )r   r£   r¤   r)   Úhann_windowr¤  s     r   Úhanningr¨  #  s+   € ÝÔ'Ñ)Ô)Ô5€EÝÔ˜Q¨°eÐ<Ñ<Ô<Ð<r   c                ób   — t          j        ¦   «         j        }t          j        | |d|¬¦  «        S )NF)Úbetar¢  r$   )r   r£   r¤   r)   Úkaiser_window)r^  rª  r$   s      r   Úkaiserr¬  (  s-   € ÝÔ'Ñ)Ô)Ô5€EÝÔ˜q t°eÀ5ÐIÑIÔIÐIr   c                ó`   — t          j        ¦   «         j        }t          j        | d|¬¦  «        S r¡  )r   r£   r¤   r)   Úblackman_windowr¤  s     r   Úblackmanr¯  -  ó+   € ÝÔ'Ñ)Ô)Ô5€EÝÔ  ¨U¸%Ð@Ñ@Ô@Ð@r   c                ó`   — t          j        ¦   «         j        }t          j        | d|¬¦  «        S r¡  )r   r£   r¤   r)   Úbartlett_windowr¤  s     r   Úbartlettr³  2  r°  r   r?   c                 ó6  — d}d}| D ]k}|j         }t          |¦  «        rd}|j        s
|j        sd}n+t                               |¦  «        }|€t          d¦  «        ‚t          j        ||¦  «        }Œl|rt          d         |         S t          d         |         S )NFr   Tr�   z+can't get common type for non-numeric arrayr   )
r$   r’  rh  r¿   Úarray_precisionÚgetr8   Úbuiltinsr®  Ú
array_type)r?   r¿   Ú	precisionr   r  Úps         r   Úcommon_typer»  I  s²   € Ø€JØ€IØð 
/ð 
/ˆØŒGˆÝ˜‰?Œ?ð 	ØˆJØÔ#ð 	O q¤|ð 	OØˆAˆAå×#Ò# AÑ&Ô&ˆAØˆyÝÐ MÑNÔNÐNÝ”L ¨AÑ.Ô.ˆ	ˆ	Øð (Ý˜!Œ}˜YÔ'Ð'å˜!Œ}˜YÔ'Ð'r   é
   Úbinsc           	     óÊ  — |�t          d¦  «        ‚|�|j        j        rt          d¦  «        ‚| j        j        p| j        j         }|d u p|j        j         }|r|                      ¦   «         } |�t          j        || j        ¦  «        }t          |t          j
        ¦  «        r:|j        dk    rt          j        |¦  «        }nt          j        || j        ¦  «        }|€)t          j        | ||t          |¦  «        ¬¦  «        \  }}	n)t          j        | |||t          |¦  «        ¬¦  «        \  }}	|s|r|                     ¦   «         }|r|	                     ¦   «         }	||	fS )Nú3normed argument is deprecated, use density= insteadzcomplex weights histogram.r   )ÚweightÚdensity)r  rÀ  rÁ  )r7   r$   r¿   rq   rh  ri  r   rÃ   r+   r)   ÚTensorr^   ÚoperatorÚindexÚ	histogramr  Úlong)
r   r½  r  Únormedr  rÁ  Úis_a_intÚis_w_intÚhr   s
             r   rÅ  rÅ  `  sh  € ð ÐÝÐNÑOÔOÐOàÐ˜wœ}Ô7ÐÝ!Ð">Ñ?Ô?Ð?à”GÔ-ÐC°´Ô1CÐD€HØ˜$ˆÐE g¤mÔ&EÐ"E€HØð Ø�HŠH‰JŒJˆàÐÝÔ& w°´Ñ8Ô8ˆå�$�œÑ%Ô%ð 7ØŒ9˜Š>ˆ>å”> $Ñ'Ô'ˆDˆDåÔ'¨¨a¬gÑ6Ô6ˆDà€}ÝŒ˜q $¨wÅÀWÁÄÐNÑNÔN‰ˆˆ1ˆ1åŒØˆt˜5¨½$¸w¹-¼-ð
ñ 
ô 
‰ˆˆ1ð ð �xð Ø�FŠF‰HŒHˆØð Ø�FŠF‰HŒHˆàˆaˆ4€Kr   r  c                ó  — t          | ¦  «        t          |¦  «        k    rt          d¦  «        ‚	 t          |¦  «        }n# t          $ r d}Y nw xY w|dk    r
|dk    r||g}t          | |f|||||¦  «        \  }}	||	d         |	d         fS )Nz"x and y must have the same length.r   r�   r   )r�   r7   r8   Úhistogramdd)
r|   rå   r½  r  rÇ  r  rÁ  r›   rÊ  Úes
             r   Úhistogram2drÎ  Œ  s¯   € õ ˆ1�v„v•�Q‘”ÒÐÝÐ=Ñ>Ô>Ð>ðÝ�‰IŒIˆˆøÝð ð ð Øˆˆˆðøøøð 	ˆA‚v€v�!�q’&�&Ø�dˆ|ˆå˜˜1�v˜t U¨F°G¸WÑEÔE�D€A€qàˆa�Œd�A�a”Dˆ=Ðs   ±A ÁAÁAc                óê  ‡ — |�t          d¦  «        ‚ddlm}m} t	          ‰ t
          t          f¦  «        r |‰ ¦  «        j        Š n |‰ ¦  «        Š t          j	        ‰ ¦  «        Š ‰ j
        j        s ‰ j
        j        s‰                      ¦   «         Š t	          |t          ¦  «        pt          j        d„ |D ¦   «         ¦  «         }|r% ||¦  «        }d„ |D ¦   «         }	ˆ fd„|D ¦   «         }|�&|                     ¦   «                              ¦   «         }|�•‰                      d¬¦  «        }
t          j        |
¦  «                             d	d
¦  «        j                             ¦   «         }t          |                     ¦   «         ¦  «        }t-          j        |‰ j
        ¦  «        }d|i}ni }t          j        ‰ ||fdt3          |¦  «        i|¤Ž\  }}|rd„ t5          ||	¦  «        D ¦   «         }||fS )Nr¿  r   )r  Únormalize_seq_array_likec              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r   rê  ©r{   r   s     r   r¹   zhistogramdd.<locals>.<genexpr>Á  s,   è è € Ð-OÐ-OÀQ­j¸½CÑ.@Ô.@Ð-OÐ-OÐ-OÐ-OÐ-OÐ-Or   c                ó   — g | ]	}|j         ‘Œ
S r6   r¢   rÒ  s     r   r}   zhistogramdd.<locals>.<listcomp>Å  s   € Ð-Ð-Ð- 1�q”wÐ-Ð-Ð-r   c                óD   •— g | ]}t          j        |‰j        ¦  «        ‘ŒS r6   )r   rÃ   r$   )r{   r   Úsamples     €r   r}   zhistogramdd.<locals>.<listcomp>Æ  s(   ø€ ÐDÐDÐD¸!•Ô$ Q¨¬Ñ5Ô5ÐDÐDÐDr   r   )rD  r�   r€   rÀ  rÁ  c                ó>   — g | ]\  }}t          j        ||¦  «        ‘ŒS r6   )r   rÃ   )r{   ÚbbÚdtyps      r   r}   zhistogramdd.<locals>.<listcomp>Ø  s)   € ÐPÐPÐP±°°D�UÔ! " dÑ+Ô+ÐPÐPÐPr   )r7   r  r  rÐ  r+   r-   r,   ÚTr)   r2   r$   rh  r¿   ri  rh   r·  rn  re   ÚtolistÚaminmaxrE   rÍ   r   rÃ   rÌ  r  r‚   )rÕ  r½  r  rÇ  r  rÁ  r  rÐ  Úbins_is_arrayÚbins_dtypesÚmmÚw_kwdrÊ  r   s   `             r   rÌ  rÌ  ¦  s  ø€ ð ÐÝÐNÑOÔOÐOàOÐOÐOÐOÐOÐOÐOÐOå�&�4¥˜-Ñ(Ô(ð .Ø%Ð% fÑ-Ô-Ô/ˆˆà%Ð% fÑ-Ô-ˆåÔ˜fÑ%Ô%€FàŒLÔ*ð !¨f¬lÔ.Eð !Ø—’‘”ˆõ 	�4�ÑÔÐO¥¤Ð-OÐ-OÈ$Ð-OÑ-OÔ-OÑ!OÔ!Oð€Mð ð EØ'Ð'¨Ñ-Ô-ˆØ-Ð-¨Ð-Ñ-Ô-ˆØDÐDÐDÐD¸tÐDÑDÔDˆàÐØ—’‘”×&Ò&Ñ(Ô(ˆàÐà�^Š^ ˆ^Ñ"Ô"ˆÝ”	˜"‘”×%Ò% a¨Ñ,Ô,Ô.×6Ò6Ñ8Ô8ˆÝ�e—l’l‘n”nÑ%Ô%ˆÝÔ& w°´Ñ=Ô=ˆØ˜7Ð#ˆˆàˆåÔ˜V T¨5ÐQÐQ½$¸w¹-¼-ÐQÈ5ÐQÐQ�D€A€qàð QØPÐP½CÀÀ;Ñ<OÔ<OÐPÑPÔPˆàˆaˆ4€Kr   c               ó�  — ddl m} |                      ¦   «         dk    r || j        ¦  «        S | j        t          j        k    rt          j        }�nk| j        j        rŒt	          j        t          j        ¦  «        }| j        t          j	        k    p=|j
        | j        cxk    o
|j        k    nc o|j
        | j        cxk    o
|j        k    nc }|rt          j	        nt          j        }nÓ| j        j        rYt          j        t          j        t          j        fD ]4}t	          j        |¦  «        }|j
        | cxk    r|j        k    rn Œ0|} nŒ5nnt          j        t          j        t          j        t          j        t          j        fD ]4}t	          j        |¦  «        }|j
        | cxk    r|j        k    rn Œ0|} nŒ5 ||¦  «        S )Nr   )ÚDType)Ú_dtypesrá  r  r$   r)   r  r¿   r„  rê   Ú	complex64r­  r‚  r®  rƒ  Ú
complex128rh  rè   rÀ   rã  r  r  r  r  Úiinfo)r   rá  r$   ÚfiÚfits_in_singlerÿ   Úiis          r   Úmin_scalar_typeré  à  sÊ  € ð ÐÐÐÐÐà‡w‚w�y„y�1‚}€}àˆu�Q”W‰~Œ~Ðà„w•%”*ÒÐÝ”
ˆ‰à	
ŒÔ	ð ÝŒ[�œÑ'Ô'ˆØœ¥E¤OÒ3ð 
ØŒF�a”fÐ&Ð&Ò&Ð& ¤Ò&Ð&Ð&Ð&ÐE¨2¬6°Q´VÐ+EÐ+EÒ+EÐ+E¸r¼vÒ+EÐ+EÐ+EÐ+Eð 	ð $2ÐG•”�µuÔ7Gˆˆà	
ŒÔ	"ð Ý”=¥%¤-µ´Ð?ð 	ð 	ˆBÝ”˜R‘”ˆBØŒv˜Ð$Ð$Ò$Ð$˜bœfÒ$Ð$Ð$Ð$Ð$Ø�Ø�ð %øõ
 ”;¥¤
­E¬K½¼ÅeÄkÐRð 	ð 	ˆBå”˜R‘”ˆBØŒv˜Ð$Ð$Ò$Ð$˜bœfÒ$Ð$Ð$Ð$Ð$Ø�Ø�ð %ð ˆ5�‰<Œ<Ðr   ÚconstantÚ	pad_widthc                ó~  — |dk    rt           ‚|                     dd¦  «        }t          j        | j        ¦  «        } ||¦  «        }t          j        || j        df¦  «        }t          j        |d¦  «         	                    ¦   «         }t
          j
        j                             | t          |¦  «        |¬¦  «        S )Nrê  Úconstant_valuesr   r�   r  )Úvalue)rq   r¶  r   rj  r$   r)   r.  r^   r  re   rú   rû   Úpadr,   )r,  rë  rþ   Úkwargsrî  Útyps         r   rï  rï    s£   € ØˆzÒÐÝ!Ð!Ø�JŠJÐ(¨!Ñ,Ô,€Eå
Ô
,¨U¬[Ñ
9Ô
9€CØˆC�‰JŒJ€EåÔ" 9¨u¬z¸1¨oÑ>Ô>€IÝ”
˜9 dÑ+Ô+×3Ò3Ñ5Ô5€IåŒ8Ô×"Ò" 5­%°	Ñ*:Ô*:À%Ð"ÑHÔHÐHr   )r   F)r   r	   r   r   r   r   )r   N)r   r   r   r	   r   r   r    r   )r'   r	   )NNr   )r   NNr   )r   r   )rG   rH   r:   rI   r$   rJ   r   r   )r9   rH   r$   rJ   r   r   )r   N)r[   rH   r:   rI   r$   rJ   r   r   r   )rb   r	   rc   r	   )Fr  )r„   r	   )r   r	   r   r	   rl  )r|   r	   )r�   TFNr   )rž   r	   rŸ   r	   r$   rJ   )r�   TNr   )r�   Tr°   Nr   )r$   rJ   )NNr   N)
rž   r³   rŸ   r³   r´   r³   r$   rJ   r²   r   )NrÅ   )r$   rJ   r   r   r²   r   )Nr   FN)rÊ   r	   r$   rJ   r   r   r   r   )rÎ   r	   r$   rJ   r   r   r²   r   )r   r	   r$   rJ   r   r   r   r   )NT)NTNN)r|   r	   rå   ræ   r$   rJ   )NTFNNN)
rñ   r	   rå   ræ   rò   ræ   ró   ræ   r$   rJ   )rÐ   )r   r	   rý   r	   )r  rð  )r  ræ   r|   r	   )NN)r  r	   r|   r³   rå   r³   )r   r	   )rñ   r	   )r   r'  )r,  r	   r   r   )r1  r	   r   r   )r8  r	   )rb   r	   )Nr   N)r$   rJ   r²   r   )r`  ra  F)rp  r	   rq  r	   )Tr|  NN)r|   r	   r   r   )NNr†  )r   r	   rF  r	   r:   rI   rþ   r   )rb   r	   rF  r	   )r†  )r   r   rF  r	   rc   r	   rþ   r   )rb   r	   rF  r	   rc   r	   )Nr†  )r   r	   r˜  rH   r:   rI   rþ   r   )FFFN)rž  r	   rŸ  r   rf  r   )NNN)r   r	   r­  ræ   r®  ræ   r:   rI   )r   r	   r²  r
   )r¶  r	   )r   r   r   )r   r   r   NN)r   r	   r$   rJ   r:   rI   )Nr   NrÅ   )rý   r	   )r�   )r   r	   r×  r	   )r   r	   r   r	   r:   rI   )r€   r€   r€   N)r€   NN)r   r	   r   r   )r8  N)r   r	   rý   r	   r9  ræ   )rÅ   )r   r€   NN)r   r	   rT  ræ   rf   ræ   )rÉ  r	   )ra  r	   )r   r	   r:   rI   )r‚  )r|   r	   r:   rI   )r?   r	   )r¼  NNNN)r   r	   r½  r	   r  ræ   )r  ræ   r  ræ   )rê  )r,  r	   rë  r	   )¬Ú__doc__Ú
__future__r   r·  r!  rÃ  Útypingr   r)   Ú r   r   Úcollections.abcr   r  r	   r
   r   r   r   r   r   r   r&   r*   r2   r4   r;   rA   rF   rN   rR   Ú	row_stackrV   rX   rZ   r`   rf   ro   ri   rj   rˆ   rs   r�   r‘   r•   r—   rš   r¥   r¯   r­   rÂ   rÁ   rÌ   rÐ   rÒ   rÔ   rÖ   rÙ   rÛ   rä   rë   rö   r  r  r  r  r    r^   rr   r  r  r  r"  r&  r)  r.  r0  r4  rA  rh   rF  rH  rK  rP  rT  rX  r[  r_  rg  rj  rs  rv  r{  r�  r‰  r�  r”  r—  r�  r£  r§  r©  r¬  r±  rµ  r¸  r¾  r]  rÆ  rÊ  rÌ  rÎ  rÑ  rÓ  rÖ  rà  rä  rí  rò  rô  rö  r  r$  r2  r5  r7  r<  rø  rA  rF  rI  r›  rÍ   rQ  rS  rV  rY  r]  r}  r€  ÚaroundÚround_r‰  r‚  rƒ  r�  r�  r’  r”  r–  r™  rœ  rŸ  r¥  r¨  r¬  r¯  r³  rè   rê   rÀ   rã  rä  r¸  rµ  r»  rÅ  rÎ  rÌ  ré  rï  r6   r   r   ú<module>rú     sÍ  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  à €€€à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ð ð Ø(Ð(Ð(Ð(Ð(Ð(ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð PUðð ð ð ð ð $/Ø $ð	ð ð ð ð ðð ð ð ðð ð ð ðð ð ð ð

ð 

ð 

ðð ð ð ð  KVð$ð $ð $ð $ð $ð 
ØØ"Ø#.ð	ð 	ð 	ð 	ð 	ð #Ø#.ð	!ð !ð !ð !ð !ð !ð €	ð #Ø#.ð	!ð !ð !ð !ð !ð !ð #Ø#.ð	
!ð 
!ð 
!ð 
!ð 
!ð 
!ð  #Ø#.ð	'ð 'ð 'ð 'ð 'ð 'ð  
Øð+ð
 #Ø#.ð+ð +ñ +ð +ð +ð +ñ 2ñ 2ð 2ð 2ð 2ñFð Fð Fð Fñ*ð *ð *ð *ð6*ð *ð *ñ"9ñ 9ð 9ð 9ð 9ñFñ Fð Fð Fð FñFð Fð Fð FñCð Cð Cð CñCð Cð Cð Cñð ð ð ñ*ñ *ð *ð *ð *ð 	ØØØ"Ø	
ñ9ñ 9ð 9ð 9ð 9ð( 	ØØ"Ø	
ññ ð ð ð ð. 	ØØ	Ø"Ø	
ñDñ Dð Dð Dð Dð '+Ø%)Ø%&Ø"ñ	&ð  $ð&ð &ñ &ð &ð &ð &ð\ #Ø #ñ	+ð
  $ð	+ð 	+ñ 	+ð 	+ð 	+ð 	+ð$ #Ø #Ø %Ø
ñ
ñ 
ð 
ð 
ð 
ð  #Ø #ñ	6ð  $ð6ð 6ñ 6ð 6ð 6ð 6ð( #Ø #Ø %Ø
ññ ð ð ð ð" #Ø #ñ	*ð
  $ð	*ð 	*ñ 	*ð 	*ð 	*ð 	*ð #Ø #Ø %Ø
ñ
ñ 
ð 
ð 
ð 
ð #Ø #ñ	+ð
  $ð	+ð 	+ñ 	+ð 	+ð 	+ð 	+ð #Ø #Ø %Ø
ñ
ñ 
ð 
ð 
ð 
ñ ð ð ð ð6 ØØ	Ø	ñð #ðð ñ ð ð ð ð< ØØ	Ø	Ø!%Ø!%ñð #ðð ñ ð ð ð ð<ð ð ñ.'ñ 'ð 'ð 'ð 'ñ'ñ 'ð 'ð 'ð 'ñ1ñ 1ð 1ð 1ð 1ð #'Ø"&ññ ð ð ð ñ,ð ð ð ñð ð ð ññ ð ð ð ñð ð ð ñ
ñ ð ð ð ñð ð ð ñð ð ð ñ#ñ #ð #ð #ð #ñ1ñ 1ð 1ð 1ð 1ð)ð )ð )ð DIð *ð *ñ *ð *ð *ð *ð #'¨u¸tð ð ñ ð ð ð ð0 36¸eð ñ ð ð ð ñ.ñ ð ð ð ññ ð ð ð ð.ð .ð .ð .ð.ð .ð .ð .ñDñ Dð Dð Dð DñDñ Dð Dð Dð Dð ØØ"ñ	*ð  $ð*ð *ñ *ð *ð *ð *ñ"Jñ Jð Jð Jð JñKñ Kð Kð Kð Kñð ð ð ñ6ñ 6ð 6ð 6ð 6ñ%ð %ð %ð %ð QUñ	Jñ 	Jð 	Jð 	Jð 	Jð$ 
ØØ&ññ ð ð ð ñ4ð 4ð 4ð 4ð  'ñ	ñ ð ð ð ñ*ð ð ð ð  Ø&ñ	/ñ /ð /ð /ð /ð2 (-ØØØ	ñð %)ðð ñ ð ð ð ñ&+ð +ð +ð +ñð ð ð ñ6ð 6ð 6ð 6ð !Ø Øñ	$ñ $ð $ð $ð $ñ5ñ 5ð 5ð 5ð 5ñð ð ð ñ!ñ !ð !ð !ð !ñ<3ñ 3ð 3ð 3ð 3ð Ø
Ø
Ø"Øñ	ñ 	ð 	ð 	ð 	ð ØØ"Ø #ñð  $ðð ñ ð ð ð ñ$%Èdð %ð %ñ %ð %ð %ð %ññ ð ð ð ñ ñ  ð  ð  ð  ñð ð ð ñ
(ð (ð (ð (ññ ð ð ð ñDð ð ð ñ@,ñ ,ð ,ð ,ð ,ññ ð ð ð ñ(ð ð ð ñ.ñ ð ð ð ñH)ñ H)ð H)ð H)ð H)ðV  d°#¸vÐPUð W ð W ð W ð W ð W ðz ð  ð  ññ ð ð ð ñ5ñ 5ð 5ð 5ð 5ð IMñ>ñ >ð >ð >ð >ñ2ð 2ð 2ð 2ñ+ð +ð +ð +ññ ð ð ð ñ6&ñ &ð &ð &ð &ññ ð ð ð ññ ð ð ð ññ ð ð ð ññ ð ð ð ð Ø	Ø $Ø#ñGñ Gð Gð Gð Gñ@ñ ð ð ð ñð ð ð ð
 +/¸1ð jð jñ jð jð jð jð`ñ ð ð ð ð 
€Ø	€ñ
'ñ 
'ð 
'ð 
'ð 
'ñð ð ð ñð ð ð ñ1ð 1ð 1ð 1ñ0ð 0ð 0ð 0ñð ð ð ñ#ð #ð #ð #ññ ð ð ð ññ ð ð ð ñð ð ð ðð ð ð@ð @ð @ð
=ð =ð =ð
Jð Jð Jð
Að Að Að
Að Að Að „]�E”M 5¤=Ð1Ø	ˆ5Œ?˜EÔ,Ð-ð€
ð
 
„M�1Ø	„M�1Ø	„M�1Ø	„O�QØ	Ô�að€ñ(ð (ð (ð (ð2 Ø
ØØ $Øñ)ñ )ð )ð )ð )ð^ 
Ø"ØØ $Øññ ð ð ð ð8 
Ø"ØØ $Øñ4ñ 4ð 4ð 4ð 4ñt"ð "ð "ð "ñJIñ Ið Ið Ið Ið Ið Ir   