ó
    Û“,jÍc  ã            
       ó*  • S r / SQr\SS/-  r/ SQr/ SQr/ SQr\\-  r\\-  r\\-  rSSKJr  S	S
KrS	S
Kr	S	S
K
r
S	SKJr  S	S
KJr  SSKJrJr  S	SKJr  S	SKJr  \SS/-  r\	R0                  r\	R2                  r\	R4                  rS H  r\" S\< S\< S\< S35        \\/-  rM      S H  r\" S\< S\< S\< S35        \\/-  rM      \ H  r\" S\< S\< S35        M      " S S\5      r\ H  r\" S\-  5        M     \ H  r\" S\-  5        M     S�S  jrS�S! jr \ r!S" rS�S# jr" " S$ S%\5      r# " S& S'\#5      r$ " S( S)\#5      r% " S* S+\#5      r& " S, S-\5      r'S‘S. jr( " S/ S0\5      r) " S1 S2\5      r* " S3 S4\*5      r+ " S5 S6\*5      r, " S7 S8\*5      r-S9 r. " S: S;\*5      r/ " S< S=\*5      r0 " S> S?\*5      r1 " S@ SA\*5      r2 " SB SC\*5      r3 " SD SE\*5      r4 " SF SG\*5      r5 " SH SI\*5      r6 " SJ SK\*5      r7 " SL SM\*5      r8 " SN SO\*5      r9\9r: " SP SQ\5      r; " SR SS\5      r< " ST SU\5      r=S’SV jr>S’SW jr? " SX S\5      r@ " SY SZ\5      rA " S[ S\A5      rBS\ rC0 qD0 qES] rF0 qGS^ rHS_ rI " S` Sa\5      rJ " Sb Sc\5      rK " Sd Se\5      rL " Sf Sg\5      rM " Sh Si\M5      rN\NrO " Sj Sk\M5      rP\PrQ " Sl Sm\M5      rR " Sn So\M5      rS " Sp Sq\5      rT " Sr Ss\T5      rU " St Su\T5      rV " Sv Sw\5      rW " Sx Sy\5      rX " Sz S{\5      rY " S| S}\Y5      rZ " S~ S\Y5      r[ " S€ S�\Y5      r\ " S‚ Sƒ\Y5      r] " S„ S…\Y5      r^ " S† S‡\Y5      r_Sˆ r`S	S
Kara\aRÄ                  RÇ                  \aRÄ                  RÉ                  \aRÄ                  RË                  \f5      5      S‰5      rg\h" \gSŠ5       ri\iRÕ                  5       rkS
S
S
5        \" S‹RÇ                  \k5      5        \SŒ/-  rS� rl\mSŽ:X  a  \l" 5         g
g
! , (       d  f       N== f)“zR
Author(s): Matthew Loper

See LICENCE.txt for licensing and contact information.
)5ÚarrayÚamaxÚaminÚmaxÚminÚmaximumÚminimumÚnanmaxÚnanminÚsumÚexpÚlogÚmeanÚstdÚvarÚsinÚcosÚtanÚarcsinÚarccosÚarctanÚsqrtÚsquareÚabsoluteÚabsÚclipÚpowerÚaddÚdivideÚmultiplyÚnegativeÚsubtractÚ
reciprocalÚ
nan_to_numÚdotÚcumsumÚfloorÚceilÚgreaterÚgreater_equalÚlessÚ
less_equalÚequalÚ	not_equalÚnonzeroÚascontiguousarrayÚasfarrayÚarangeÚasarrayÚcopyÚcrossÚshapeÚsignÚSumOfSquaresÚ	NanDivide)ÚemptyÚ
empty_likeÚeyeÚidentityÚonesÚ	ones_likeÚzerosÚ
zeros_liker   r1   ÚlinspaceÚlogspaceÚmeshgridÚmgridÚogridÚfromfunctionÚfromiterrC   Útri)Ú
asanyarrayÚasmatrixÚ
frombufferr3   ÚfromfileÚ
fromstringÚloadtxtÚcopytorJ   ÚasfortranarrayÚasscalarÚrequire)ÚtrilÚtriuÚvanderé   )ÚChé    N)ÚcPickle)ÚrowÚcol)r3   )ÚreduceÚpiÚset_printoptions)ÚargmaxÚ	nanargmaxÚargminÚ	nanargminzdef z(a, axis=None) : return np.z/(a.r, axis) if hasattr(a, "compute_r") else np.z	(a, axis))Úargwherer.   Úflatnonzeroz(a) : return np.z)(a.r) if hasattr(a, "compute_r") else np.z(a)z!(*args, **kwargs) : return Ch(np.z(*args, **kwargs))c                   ó   • \ rS rSrSrg)ÚWontImplementéJ   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rh   ó    Ú›C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\chumpy/ch_ops.pyrf   rf   J   s   † Úrn   rf   z-def %s(*args, **kwargs) : raise WontImplementz3def %s(*args, **kwargs) : raise NotImplementedErrorc                 ó®   • Ub  U[         R                  L d   eUS:X  d  Ub   e[        U S5      (       a  U $ [        [         R                  " XU5      5      $ )NÚCÚdterms)ÚnpÚfloat64ÚhasattrrW   r2   )ÚaÚdtypeÚorders      ro   r2   r2   S   sQ   € Ø‰=˜E¤R§Z¡ZÒ/Ð0Ð/Ø�C‹<˜5™=Ð)Ð(Üˆq�(×ÑØˆÜŒb�jŠj˜ 5Ó)Ó*Ð*rn   c                 ó   • U $ ©Nrh   ©rv   rw   s     ro   r/   r/   [   s   € ¨Q hrn   c                 óV   • [         R                  " [         R                  " U 5      5      $ rz   )ÚpickleÚloadsÚdumps©Úselfs    ro   r3   r3   `   s   € Ü�<Š<œŸš TÓ*Ó+Ð+rn   c                 ó   • [         erz   )rf   r{   s     ro   rP   rP   c   s   € ¬Ð#6rn   c                   ó   • \ rS rSrSrS rSrg)Ú	Simpletonéf   Úxc                 ó   • g rz   rh   ©r�   Úwrts     ro   Úcompute_dr_wrtÚSimpleton.compute_dr_wrth   ó   € Ørn   rh   N)ri   rj   rk   rl   rr   rŠ   rm   rh   rn   ro   r„   r„   f   s   † Ø€Fõrn   r„   c                   ó   • \ rS rSrS rSrg)r&   ék   c                 óV   • [         R                  " U R                  R                  5      $ rz   )rs   r&   r†   Úrr€   s    ro   Ú	compute_rÚfloor.compute_rl   s   € ¤§¢¨¯©¯©Ó 2Ð2rn   rh   N©ri   rj   rk   rl   r‘   rm   rh   rn   ro   r&   r&   k   s   † Ý2rn   r&   c                   ó   • \ rS rSrS rSrg)r'   én   c                 óV   • [         R                  " U R                  R                  5      $ rz   )rs   r'   r†   r�   r€   s    ro   r‘   Úceil.compute_ro   ó   € ¤§¢¨¯©¯©Ó 1Ð1rn   rh   Nr“   rh   rn   ro   r'   r'   n   ó   † Ý1rn   r'   c                   ó   • \ rS rSrS rSrg)r6   éq   c                 óV   • [         R                  " U R                  R                  5      $ rz   )rs   r6   r†   r�   r€   s    ro   r‘   Úsign.compute_rr   r˜   rn   rh   Nr“   rh   rn   ro   r6   r6   q   r™   rn   r6   c                   ó2   • \ rS rSrSrSrSrS rS rS r	Sr
g	)
ÚCrossét   ©rv   Úb)ÚaxisaÚaxisbÚaxiscÚaxis©rv   r¢   r£   r¤   r¥   r¦   c                 óØ   • [         R                  " U R                  R                  U R                  R                  U R
                  U R                  U R                  U R                  5      $ rz   )	rs   r4   rv   r�   r¢   r£   r¤   r¥   r¦   r€   s    ro   r‘   ÚCross.compute_ry   s>   € Ü�xŠx˜Ÿ™Ÿ™ $§&¡&§(¡(¨D¯J©J¸¿
¹
ÀDÇJÁJÐPT×PYÑPYÓZÐZrn   c                 ó  • [        U S5      (       d  SU l        SU l        XR                  :w  d  X R                  :w  a­  X-  n[        R                  " U5      n[        R
                  " UR                  SU45      USS9R                  5       U l        [        R
                  " XB5      U l	        [        R                  " [        R                  " U5      US45      U l        Xl        X l        U R                  U R                  U R                  4$ )NÚ_wrX   éÿÿÿÿ©r¦   rV   )ru   r«   Ú_hrs   r1   ÚrepeatÚreshapeÚravelÚ_JSÚ_ISÚtiler;   Ú_tiled_identity)r�   ÚhÚwÚszÚrngs        ro   Ú_load_crossprod_cacheÚCross._load_crossprod_cache}   sÀ   € Ü�t˜T×"Ñ"ØˆDŒGØˆDŒGà�g‰g‹:˜ŸG™G›Ø‘ˆBÜ—)’)˜B“-ˆCÜ—y’y §¡¨b°¨VÓ!4°a¸aÑ@×FÑFÓHˆDŒHÜ—y’y Ó(ˆDŒHÜ#%§7¢7¬2¯6ª6°!«9°q¸!°fÓ#=ˆDÔ ØŒGØŒGà×#Ñ# T§X¡X¨t¯x©xÐ8Ð8rn   c                 ó.  • XR                   La  XR                  La  g U R                   R                  nU R                   R                  u  p4U R	                  X45      u  pVnXR                   L ao  [
        R                  " U R                  R                  * USS9n[
        R                  " UUU R                  U R                  U R                  U R                  5      n	OzXR                  L al  [
        R                  " [
        R                  " U R                   R                  * USS9UU R                  U R                  U R                  U R                  5      n	W	R                  5       n
[        R                  " X¦U44U R                  UR                  4S9n	U	$ )NrX   r­   ©r5   )rv   r¢   Úsizer5   rº   rs   r¯   r�   r4   r£   r¤   r¥   r¦   r±   ÚspÚ
csc_matrix)r�   r‰   r¸   r¶   r·   Útiled_identityÚISÚJSÚrpÚresultÚdatas              ro   rŠ   ÚCross.compute_dr_wrt�   s)  € Ø—f‘fÒ ¯F©FÒ!2Øà�V‰V�[‰[ˆØ�v‰v�|‰|‰ˆØ!%×!;Ñ!;¸AÓ!AÑˆ˜Bð —&‘&Š=Ü—’˜DŸF™FŸH™H˜9 a¨aÑ0ˆBÜ—X’XØØØ—
‘
Ø—
‘
Ø—
‘
Ø—	‘	ó‰Fð —F‘FŠ]Ü—X’XÜ—	’	˜4Ÿ6™6Ÿ8™8˜) Q¨QÑ/ØØ—
‘
Ø—
‘
Ø—
‘
Ø—	‘	óˆFð �|‰|‹~ˆÜ—’ ¨" g˜°t·y±yÀ#Ç(Á(Ð6KÑLˆð ˆrn   )r³   r²   r®   rµ   r«   N)ri   rj   rk   rl   rr   ÚtermsÚ
term_orderr‘   rº   rŠ   rm   rh   rn   ro   rŸ   rŸ   t   s!   † Ø€FØ-€EØ<€Jò[ò9õ&$rn   rŸ   c                 ó   • [        XX#XE5      $ rz   )rŸ   r§   s         ro   r4   r4   ¶   s   € Ü��u UÓ1Ð1rn   c                   ó2   • \ rS rSrSrSrSrS rS rS r	Sr
g	)
r%   é¼   rv   r¦   ©rv   r¦   c                 ó6   • [        U S5      (       d  S U l        g g ©Nr¦   ©ru   r¦   ©r�   Úwhichs     ro   Ú
on_changedÚcumsum.on_changedÁ   ó   € Ü�t˜V×$Ñ$ØˆD�Ið %rn   c                 óh   • [         R                  " U R                  R                  U R                  S9$ ©Nr­   )rs   r%   rv   r�   r¦   r€   s    ro   r‘   Úcumsum.compute_rÅ   s   € Ü�yŠy˜Ÿ™Ÿ™¨¯	©	Ñ2Ð2rn   c                 ó&  • XR                   La  g U R                  b  [        e[        R                  " [        [        R                  " U R                   R                  5      5      U R                   R                  S45      nUR                  nUR                  5       nUR                  5       nX#:¬  nX$   nX4   n[        R                  " U5      n[        R                  " XRU44U R                   R                  U R                   R                  4S9nU$ ©NrV   r½   )rv   r¦   ÚNotImplementedErrorrs   r´   rZ   r1   r¾   ÚTr±   r>   r¿   rÀ   )r�   r‰   rÂ   rÃ   rÒ   rÆ   rÅ   s          ro   rŠ   Úcumsum.compute_dr_wrtÈ   sÅ   € Ø—f‘fÒØà�9‰9Ñ Ü%Ð%ä�WŠW”SœŸš 4§6¡6§;¡;Ó/Ó0°4·6±6·;±;ÀÐ2BÓCˆØ�T‰TˆØ�X‰X‹ZˆØ�X‰X‹ZˆØ‘ˆØ‰YˆØ‰YˆÜ�|Š|˜BÓˆÜ—’ ¨2 hÐ/¸¿¹¿¹ÀTÇVÁVÇ[Á[Ð7QÑRˆØˆrn   r­   N©ri   rj   rk   rl   rr   rÈ   rÉ   rÓ   r‘   rŠ   rm   rh   rn   ro   r%   r%   ¼   s    † Ø€FØ€EØ€Jòò3õrn   r%   c                   ó$   • \ rS rSrSrS rS rSrg)ÚUnaryElemwiseéÛ   r†   c                 óL   • U R                  U R                  R                  5      $ rz   )Ú_rr†   r�   r€   s    ro   r‘   ÚUnaryElemwise.compute_rÞ   s   € Ø�w‰w�t—v‘v—x‘xÓ Ð rn   c                 ó  • XR                   L aq  U R                  U R                   R                  5      n[        U5      S:”  a'  [        R
                  " UR                  5       /S/5      $ [        R                  " U5      $ g ©NrV   rX   )	r†   Ú_dr�   Úlenr¿   Údiagsr±   rs   Ú
atleast_2d©r�   r‰   rÅ   s      ro   rŠ   ÚUnaryElemwise.compute_dr_wrtá   s[   € Ø—&‘&Š=Ø—W‘W˜TŸV™VŸX™XÓ&ˆFÜ69¸&³kÀ!³m”2—8’8˜VŸ\™\›^Ð,¨q¨cÓ2Ð^ÌÏÊÐW]ÓI^Ð^ð rn   rh   N©ri   rj   rk   rl   rr   r‘   rŠ   rm   rh   rn   ro   rà   rà   Û   s   † Ø€Fò!õ_rn   rà   c                   ó    • \ rS rSrS rS rSrg)r#   éç   c                 ó.   • [         R                  " U5      $ rz   )rs   r#   ©r�   r†   s     ro   Ú<lambda>Únan_to_num.<lambda>è   s   € œ"Ÿ-š-¨Ô*rn   c                 ót   • [         R                  " [         R                  " U5      [         R                  5      $ rz   )rs   r2   Úisfinitert   rñ   s     ro   rò   ró   é   s   € œ"Ÿ*š*¤R§[¢[°£^´R·Z±ZÔ@rn   rh   N)ri   rj   rk   rl   rã   rç   rm   rh   rn   ro   r#   r#   ç   s   † Ù	*€BÙ	@ƒBrn   r#   c                   ó2   • \ rS rSr\R
                  rS rSrg)r"   éë   c                 óX   • [         R                  " [         R                  " U5      5      * $ rz   ©rs   r"   r   rñ   s     ro   rò   Úreciprocal.<lambda>í   s   € œ2Ÿ=š=¬¯ª°1«Ó6Ñ6rn   rh   N)	ri   rj   rk   rl   rs   r"   rã   rç   rm   rh   rn   ro   r"   r"   ë   s   † Ø	�‰€BÙ	6ƒBrn   r"   c                   ó2   • \ rS rSr\R
                  rS rSrg)r   éï   c                 ó   • US-  $ ©Nç       @rh   rñ   s     ro   rò   Úsquare.<lambda>ñ   s   € ˜!˜bš&rn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r   ï   s   † Ø	�‰€BÙ	 ƒBrn   r   c                 óè   • [         R                  " 5          [         R                  " S[        S9  [        R
                  " [        R                  " X5      5      sS S S 5        $ ! , (       d  f       g = f)NÚignore)Úcategory)ÚwarningsÚcatch_warningsÚfilterwarningsÚRuntimeWarningrs   r#   r   r¡   s     ro   Úmy_powerr  ó   s>   € Ü	×	 Ò	 Õ	"Ü×Ò ´.ÒAÜ�}Š}œRŸXšX a›^Ó,÷ 
#×	"×	"ús   –AA#Á#
A1c                   ó2   • \ rS rSr\R
                  rS rSrg)r   éø   c                 ó    • S[        US5      -  $ )Ng      à?g      à¿)r  rñ   s     ro   rò   Úsqrt.<lambda>ú   s   € ˜"œx¨¨4Ó0Ò0rn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r   ø   s   † Ø	�‰€BÙ	0ƒBrn   r   c                   óD   • \ rS rSr\R
                  r\R
                  rSrg)r   éü   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r   ü   ó   † Ø	�‰€BØ	�‰ƒBrn   r   c                   óD   • \ rS rSr\R
                  r\R                  rSr	g)r   é   rh   N)
ri   rj   rk   rl   rs   r   rã   r"   rç   rm   rh   rn   ro   r   r      s   † Ø	�‰€BØ	�‰ƒBrn   r   c                   óD   • \ rS rSr\R
                  r\R                  rSr	g)r   i  rh   N)
ri   rj   rk   rl   rs   r   rã   r   rç   rm   rh   rn   ro   r   r     r  rn   r   c                   ó2   • \ rS rSr\R
                  rS rSrg)r   i  c                 ó„   • [         R                  " [         R                  " S[         R                  " U5      -
  5      5      $ ©Nç      ð?©rs   r"   r   r   rñ   s     ro   rò   Úarcsin.<lambda>
  s"   € œ"Ÿ-š-¬¯ª°´2·9²9¸Q³<±Ó(@ÔArn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r     s   † Ø	�‰€BÙ	AƒBrn   r   c                   ó2   • \ rS rSr\R
                  rS rSrg)r   i  c                 ó0   • [         R                  " U5      * $ rz   )rs   r   rñ   s     ro   rò   Úcos.<lambda>  s   € œ2Ÿ6š6 !›9™*rn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r     ó   † Ø	�‰€BÙ	$ƒBrn   r   c                   ó2   • \ rS rSr\R
                  rS rSrg)r   i  c                 ó†   • [         R                  " [         R                  " S[         R                  " U5      -
  5      5      * $ r  r  rñ   s     ro   rò   Úarccos.<lambda>  s%   € œ2Ÿ=š=¬¯ª°´B·I²I¸a³L±Ó)AÓBÑBrn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r     s   † Ø	�‰€BÙ	BƒBrn   r   c                   ó2   • \ rS rSr\R
                  rS rSrg)r   i  c                 ó\   • [         R                  " [         R                  " U5      S-  5      $ rþ   )rs   r"   r   rñ   s     ro   rò   Útan.<lambda>  s   € œ"Ÿ-š-¬¯ª¨q«	°2©Ô6rn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r     s   † Ø	�‰€BÙ	6ƒBrn   r   c                   ó2   • \ rS rSr\R
                  rS rSrg)r   i  c                 ó\   • [         R                  " [         R                  " U5      S-   5      $ r  rù   rñ   s     ro   rò   Úarctan.<lambda>  s   € œ"Ÿ-š-¬¯	ª	°!«°R©Ô8rn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r     s   † Ø	�‰€BÙ	8ƒBrn   r   c                   ó2   • \ rS rSr\R
                  rS rSrg)r    i  c                 óV   • [         R                  " [         R                  " U5      5      $ rz   )rs   r    r>   rñ   s     ro   rò   Únegative.<lambda>  s   € œ"Ÿ+š+¤b§l¢l°1£oÔ6rn   rh   N)	ri   rj   rk   rl   rs   r    rã   rç   rm   rh   rn   ro   r    r      s   † Ø	�‰€BÙ	6ƒBrn   r    c                   ó2   • \ rS rSr\R
                  rS rSrg)r   i   c                 ó   • US:„  S-  S-
  $ )NrX   é   r  rh   rñ   s     ro   rò   Úabsolute.<lambda>"  s   € ˜1˜Q™3 ™' "š*rn   rh   N)	ri   rj   rk   rl   rs   r   rã   rç   rm   rh   rn   ro   r   r      r  rn   r   c                   ó,   • \ rS rSrSrSrSrS rS rSr	g)	r   i&  rv   )Úa_minÚa_max)rv   r.  r/  c                 ó‚   • [         R                  " U R                  R                  U R                  U R
                  5      $ rz   )rs   r   rv   r�   r.  r/  r€   s    ro   r‘   Úclip.compute_r+  s%   € Ü�wŠw�t—v‘v—x‘x §¡¨T¯Z©ZÓ8Ð8rn   c                 ód  • XR                   L a¢  [        R                  " U R                  U R                  :g  U R                  U R
                  :g  -  [        R                  5      n[        U5      S:”  a'  [        R                  " UR                  5       /S/5      $ [        R                  " U5      $ g ræ   )rv   rs   r2   r�   r.  r/  rt   rè   r¿   ré   r±   rê   rë   s      ro   rŠ   Úclip.compute_dr_wrt.  s{   € Ø—&‘&Š=Ü—Z’Z §¡¨4¯:©:Ñ!5¸$¿&¹&ÀDÇJÁJÑ:NÑ OÔQS×Q[ÑQ[Ó\ˆFÜ69¸&³kÀ!³m”2—8’8˜VŸ\™\›^Ð,¨q¨cÓ2Ð^ÌÏÊÐW]ÓI^Ð^ð rn   rh   N)
ri   rj   rk   rl   rr   rÈ   rÉ   r‘   rŠ   rm   rh   rn   ro   r   r   &  s   † Ø€FØ€EØ&€Jò9õ_rn   r   c                   ó2   • \ rS rSrSrSrSrS rS rS r	Sr
g	)
r   i3  ©r†   r­   ©r†   r¦   c                 óf   • [        U S5      (       d  S U l        [        U S5      (       d  0 U l        g g ©Nr¦   Údr_cache©ru   r¦   r9  rÑ   s     ro   rÓ   Úsum.on_changed8  ó/   € Ü�t˜V×$Ñ$ØˆDŒIÜ�t˜Z×(Ñ(ØˆD�Mð )rn   c                 óh   • [         R                  " U R                  R                  U R                  S9$ r×   )rs   r   r†   r�   r¦   r€   s    ro   r‘   Úsum.compute_r>  s   € Ü�vŠv�d—f‘f—h‘h T§Y¡YÑ/Ð/rn   c           	      óª  • XR                   La  g U R                  S :X  aL  [        [        R                  " S[        U R                   R                  R                  5       5      45      5      $ [        [        U R                   R                  5      U R                  /-   5      nX R                  ;  Ga”  [        R                  " U R                   R                  5      R                  U R                   R                  5      n[        R                  " X0R                  S5      n[        R                  " U R                  R                  5      R                  U R                  R                  5      n[        R                  " UR                   [        R"                  S9nUR                  S   US'   [        R$                  " XE5      n[        R                  " UR                  5      n[&        R(                  " XdR                  5       UR                  5       44U R                  R                  UR                  45      nXpR                  U'   U R                  U   $ ©NrV   rX   ©rw   )r†   r¦   rZ   rs   r=   rè   r�   r±   ÚtupleÚlistr5   r9  r1   r¾   r°   ÚrollaxisÚndimÚuint32r´   r¿   rÀ   ©r�   r‰   ÚuidÚidxs_presumÚidxs_postsumÚtprÆ   rÅ   s           ro   rŠ   Úsum.compute_dr_wrtA  sˆ  € Ø—f‘fÒØØ�9‰9˜ÓÜ”r—w’w ¤3 t§v¡v§x¡x§~¡~Ó'7Ó#8Ð9Ó:Ó;Ð;äœ˜TŸV™VŸ\™\Ó*¨d¯i©i¨[Ñ8Ó9ˆCØŸ-™-Ô'Ü Ÿiši¨¯©¯©Ó4×<Ñ<¸T¿V¹V¿\¹\ÓJ�Ü Ÿkšk¨+·y±yÀ!ÓD�Ü!Ÿyšy¨¯©¯©Ó5×=Ñ=¸d¿f¹f¿l¹lÓK�Ü—W’W˜[×-Ñ-´R·Y±YÑ?�Ø#×)Ñ)¨!Ñ,��1‘Ü!Ÿwšw |Ó8�Ü—w’w˜|×0Ñ0Ó1�ÜŸš¨×/AÑ/AÓ/CÀ[×EVÑEVÓEXÐ.YÐ'ZÐ]a×]cÑ]c×]hÑ]hÐjm×jrÑjrÐ\sÓt�Ø%+—‘˜cÑ"Ø—=‘= Ñ%Ð%rn   ©r¦   r9  NrÞ   rh   rn   ro   r   r   3  s    † Ø€FØ€EØ€Jòò0õ&rn   r   c                   ó2   • \ rS rSrSrSrSrS rS rS r	Sr
g	)
r   iU  r5  r­   r6  c                 óf   • [        U S5      (       d  S U l        [        U S5      (       d  0 U l        g g r8  r:  rÑ   s     ro   rÓ   Úmean.on_changedZ  r<  rn   c                 ó�   • [         R                  " [         R                  " U R                  R                  U R
                  S95      $ r×   )rs   r   r   r†   r�   r¦   r€   s    ro   r‘   Úmean.compute_r`  s(   € Ü�xŠxœŸš §¡§¡¨t¯y©yÑ9Ó:Ð:rn   c                 ó  • XR                   La  g U R                  S :X  a^  [        [        R                  " S[        U R                   R                  5      45      5      [        U R                   R                  5      -  $ [        [        U R                   R                  5      U R                  /-   5      nX R                  ;  Ga¸  [        R                  " U R                   R                  5      R                  U R                   R                  5      n[        R                  " X0R                  S5      n[        R                  " U R                  R                  5      R                  U R                  R                  5      n[        R                  " UR                  [        R                   S9nUR                  S   US'   [        R"                  " XE5      n[        R                  " UR                  5      U R                   R                  U R                     -  n[$        R&                  " XdR)                  5       UR)                  5       44U R                  R                  UR                  45      nXpR                  U'   U R                  U   $ r@  )r†   r¦   rZ   rs   r=   rè   r�   rB  rC  r5   r9  r1   r¾   r°   rD  rE  rF  r´   r¿   rÀ   r±   rG  s           ro   rŠ   Úmean.compute_dr_wrtc  s§  € Ø—f‘fÒØØ�9‰9˜ÓÜ”r—w’w ¤3 t§v¡v§x¡x£=Ð1Ó2Ó3´C¸¿¹¿¹³MÑAÐAäœ˜TŸV™VŸ\™\Ó*¨d¯i©i¨[Ñ8Ó9ˆCØŸ-™-Ô'Ü Ÿiši¨¯©¯©Ó4×<Ñ<¸T¿V¹V¿\¹\ÓJ�Ü Ÿkšk¨+·y±yÀ!ÓD�Ü!Ÿyšy¨¯©¯©Ó5×=Ñ=¸d¿f¹f¿l¹lÓK�Ü—W’W˜[×-Ñ-´R·Y±YÑ?�Ø#×)Ñ)¨!Ñ,��1‘Ü!Ÿwšw |Ó8�Ü—w’w˜|×0Ñ0Ó1°D·F±F·L±LÀÇÁÑ4KÑK�ÜŸš¨×/AÑ/AÓ/CÀ[×EVÑEVÓEXÐ.YÐ'ZÐ]a×]cÑ]c×]hÑ]hÐjm×jrÑjrÐ\sÓt�Ø%+—‘˜cÑ"Ø—=‘= Ñ%Ð%rn   rM  NrÞ   rh   rn   ro   r   r   U  s    † Ø€FØ€EØ€Jòò;õ&rn   r   c                 ób   • US :w  d  US :w  d  US:w  d  US:w  a  [        S5      e[        U S-  US9$ )NrX   Fú=Unimplemented for non-default dtype, out, ddof, and keepdims.rÿ   r­   )ÚNotImplementedExceptionr   ©rv   r¦   rw   ÚoutÚddofÚkeepdimss         ro   r   r   w  s9   € Ø�‹˜ ›¨°«	°XÀÓ5FÜ%Ð&eÓfÐfÜ��2‘˜DÑ!Ð!rn   c                 ól   • US :w  d  US :w  d  US:w  d  US:w  a  [        S5      e[        [        XS95      $ )NrX   FrV  r­   )rW  r   r   rX  s         ro   r   r   |  s8   € Ø�‹˜ ›¨°«	°XÀÓ5FÜ%Ð&eÓfÐfÜ”�AÑ!Ó"Ð"rn   c                   ó$   • \ rS rSrSrS rS rSrg)r7   i‚  r5  c                 óx   • [         R                  " U R                  R                  R	                  5       S-  5      $ rþ   )rs   r   r†   r�   r±   r€   s    ro   r‘   ÚSumOfSquares.compute_r…  s%   € Ü�vŠv�d—f‘f—h‘h—n‘nÓ&¨Ñ*Ó+Ð+rn   c                 ó€   • XR                   L a0  [        U R                   R                  R                  5       S-  5      $ g rþ   )r†   rZ   r�   r±   rˆ   s     ro   rŠ   ÚSumOfSquares.compute_dr_wrtˆ  s/   € Ø—&‘&Š=Ü�t—v‘v—x‘x—~‘~Ó'¨Ñ*Ó+Ð+ð rn   rh   Nrí   rh   rn   ro   r7   r7   ‚  s   † Ø€Fò,õ,rn   c                   ó$   • \ rS rSrSrS rS rSrg)r   i�  ©Úx1Úx2c                 ó\   • U R                   R                  U R                  R                  -  $ rz   )rd  r�   re  r€   s    ro   r‘   Údivide.compute_r�  s   € Ø�w‰w�y‰y˜4Ÿ7™7Ÿ9™9Ñ$Ð$rn   c                 óö  • XR                   L XR                  L :X  a  g [        U R                   U R                  U5      u  p#pEU R                   R                  U R                  R                  pvXR                   L a(  [        R
                  " U5      U-  R                  5       nOU* Xw-  -  R                  5       n[        R                  " X‚U44U R                  R                  UR                  R                  4S9$ )Nr½   )
rd  re  Ú_broadcast_setupr�   rs   r>   r±   r¿   rÀ   r¾   )	r�   r‰   rÂ   rÃ   Úinput_szÚ	output_szÚx1rÚx2rrÆ   s	            ro   rŠ   Údivide.compute_dr_wrt“  s´   € à—7‘7ˆN §w¡w Ó/Øä&6°t·w±wÀÇÁÈÓ&MÑ#ˆ�à—7‘7—9‘9˜dŸg™gŸi™iˆSØ—'‘'Š>Ü—L’L Ó%¨Ñ+×2Ñ2Ó4‰Dà�D˜C™GÑ$×+Ñ+Ó-ˆDä�}Š}˜d¨ HÐ-°d·f±f·k±kÀ3Ç5Á5Ç:Á:Ð5NÑOÐOrn   rh   Nrí   rh   rn   ro   r   r   �  s   † Ø€Fò%õPrn   r   c                   ó8   ^ • \ rS rSrSrU 4S jrU 4S jrSrU =r$ )r8   i¥  rc  c                 ó|  >• [         R                  " 5          [         R                  " S5        [        U R                  U ]  5       nS S S 5        WR                  nUR                  5       nSU[        R                  " U5      '   SU[        R                  " U5      '   UR                  U5      $ ! , (       d  f       Nm= f)Nr  rX   )r  r  ÚsimplefilterÚsuperÚ	__class__r‘   r5   r±   rs   ÚisinfÚisnanr°   )r�   rÅ   r5   rs  s      €ro   r‘   ÚNanDivide.compute_r¨  s‰   ø€ Ü×$Ò$Õ&Ü×!Ò! (Ô+Ü˜4Ÿ>™>¨4Ñ:Ó<ˆF÷ 'ð —‘ˆØ—‘“ˆØ#$ˆŒr�xŠx˜ÓÑ Ø#$ˆŒr�xŠx˜ÓÑ Ø�~‰~˜eÓ$Ð$÷ 'Õ&ús   —/B-Â-
B;c                 ó^  >• [         R                  " 5          [         R                  " S5        [        U R                  U ]  U5      nS S S 5        WbË  UR                  5       n[        R                  " U5      (       a\  SUR                  [        R                  " UR                  5      '   SUR                  [        R                  " UR                  5      '   U$ UR                  5       nSU[        R                  " U5      '   SU[        R                  " U5      '   U$ g ! , (       d  f       NÝ= f)Nr  rX   g        )r  r  rq  rr  rs  rŠ   r3   r¿   ÚissparserÆ   rs   rt  ru  r±   )r�   r‰   rÅ   Úrrrs  s       €ro   rŠ   ÚNanDivide.compute_dr_wrt²  sÖ   ø€ Ü×$Ò$Õ&Ü×!Ò! (Ô+Ü˜4Ÿ>™>¨4Ñ?ÀÓDˆF÷ 'ð ÑØ—[‘[“]ˆFÜ�{Š{˜6×"Ñ"Ø56�—‘œBŸHšH V§[¡[Ó1Ñ2Ø56�—‘œBŸHšH V§[¡[Ó1Ñ2Ø�à—\‘\“^�Ø#%�”2—8’8˜B“<Ñ Ø#%�”2—8’8˜B“<Ñ Ø�ð ÷ 'Õ&ús   —0DÄ
D,rh   )	ri   rj   rk   rl   rr   r‘   rŠ   rm   Ú__classcell__)rs  s   @ro   r8   r8   ¥  s   ø† Ø€Fõ%÷ó rn   c                 óh   • [        U S5      (       a  U R                  $ [        R                  " U 5      $ )Nr5   )ru   r5   rs   ©rv   s    ro   r5   r5   Ã  s%   € Ü˜a ×)Ñ)ˆ1�7‰7Ð:¬r¯xªx¸«{Ð:rn   c                 óN  • [        [        U R                  UR                  45      5      S:X  aö  U R                  nU[        ;  aV  U R                  n[
        R                  " U5      n[        R                  " [
        R                  " U5      Xf44XU4S9[        U'   [        [        U   5      n[        U[
        R                  5      (       a  UR                  5       Ul        GOˆ[
        R                  " UR                  5      Ul        UR                  R!                  U5        GOFU R                  UR                  X L X!L 4nU["        ;  Gaš  UR                  n[
        R$                  " U R&                  UR&                  5      R                  n	X L a9  [
        R                  " U R                  5      R)                  U R                  5      O[
        R*                  " U R                  5      n
X!L a=  X La9  [
        R                  " UR                  5      R)                  UR                  5      O[
        R*                  " UR                  5      n[
        R                  " U	5      n[
        R,                  " [
        R.                  " X«5      R                  5       [
        R0                  5      n[        R                  " [
        R                  " UR                  5      Xl44X˜4S9["        U'   [        ["        U   5      n[        U[
        R                  5      (       a  X7R                     Ul        O@[
        R                  " UR                  5      Ul        UR                  R!                  U5        [
        R2                  " UR                  5      S:X  a  [
        R4                  " U5      $ U$ rÚ   )rè   Úsetr5   Ú_bs_setup_data1r¾   rs   r1   r¿   rÀ   r9   Ú	copy_copyÚ
isinstanceÚndarrayr±   rÆ   ÚnnzÚfillÚ_bs_setup_data2Ú	broadcastr�   r°   r?   r2   r   rF  Úprodr   )rv   r¢   r‰   rÆ   rH  ÚaszrÂ   rÅ   rj  rk  Úa2Úb2rÃ   s                ro   Ú_broadcast_matrixrŒ  É  s\  € ô Œ3�—‘˜Ÿ™Ð!Ó"Ó# qÓ(Ø�g‰gˆØ”oÓ%Ø—&‘&ˆCÜ—’˜3“ˆBÜ#%§=¢=´"·(²(¸3³-À"ÀÐ1JÐSVÐR\Ñ#]ŒO˜CÑ Üœ?¨3Ñ/Ó0ˆÜ�dœBŸJ™J×'Ñ'ØŸ*™*›,ˆFŽKäŸ(š( 6§:¡:Ó.ˆFŒKØ�K‰K×Ñ˜TÖ"à�w‰w˜Ÿ™  ¨3¨8Ð4ˆØ”oÔ%Ø—x‘xˆHÜŸš Q§S¡S¨!¯#©#Ó.×3Ñ3ˆIØ7:²x”—’˜1Ÿ6™6Ó"×*Ñ*¨1¯7©7Ô3ÄRÇXÂXÈaÏgÉgÓEVˆBØ8;ºÀSÂ\”—’˜1Ÿ6™6Ó"×*Ñ*¨1¯7©7Ô3ÔXZ×X`ÒX`Ðab×ahÑahÓXiˆBÜ—’˜9Ó%ˆBÜ—’œRŸVšV B›]×1Ñ1Ó3´R·Y±YÓ?ˆBä#%§=¢=´"·)²)¸B¿G¹GÓ2DÀrÀhÐ1OÐXaÐWlÑ#mŒO˜CÑ äœ?¨3Ñ/Ó0ˆÜ�dœBŸJ™J×'Ñ'ØŸ{™{Ñ+ˆF�KäŸ(š( 6§:¡:Ó.ˆFŒKØ�K‰K×Ñ˜TÔ"ä	‡w‚wˆv�|‰|Ó Ó!Ü�xŠx˜‹~Ðàˆrn   c                 ó   • [        S5      e)Nz]This function is probably a bad idea, because shape is not cached and overquerying can occur.)Ú	ExceptionÚbroadcast_shape_cacherè   rs   r=   rF  r   Úvstackr‡  r9   r5   Úarray_equalrB  )
Úa_shapeÚb_shaperH  ÚlaÚlbÚlnÚashÚbshÚ
our_resultÚnumpy_results
             ro   Úbroadcast_shaper›  ô  s   € ô ÐsÓ
tÐtrn   c                 ó~  • [        [        U R                  UR                  45      5      S:X  a&  U R                  n[        R
                  " U5      nXDX34$ UR                  R                  n[        R                  " U R                  UR                  5      R                  nX L a9  [        R
                  " U R                  5      R                  U R                  5      O[        R                  " U R                  5      nX!L a=  X La9  [        R
                  " UR                  5      R                  UR                  5      O[        R                  " UR                  5      n[        R
                  " U5      n[        R                  " [        R                  " Xx5      R                  5       [        R                  5      n	XIXV4$ )NrV   )rè   r  r5   r¾   rs   r1   r�   r‡  r°   r?   r2   r   r±   rF  )
rv   r¢   r‰   r‰  rÂ   rj  rk  rŠ  r‹  rÃ   s
             ro   ri  ri    s  € Ü
Œ3�—‘˜Ÿ™Ð!Ó"Ó# qÓ(Ø�f‰fˆÜ�YŠY�s‹^ˆØ�sÐÐØ�u‰u�z‰z€HÜ—’˜QŸS™S !§#¡#Ó&×+Ñ+€IØ/2ªxŒ�Š�1—6‘6Ó	×	"Ñ	" 1§7¡7Ô	+¼R¿XºXÀaÇgÁgÓ=N€BØ03²¸Sº\Œ�Š�1—6‘6Ó	×	"Ñ	" 1§7¡7Ô	+ÔPR×PXÒPXÐYZ×Y`ÑY`ÓPa€BÜ	�Š�9Ó	€BÜ	�Š”R—V’V˜B“]×)Ñ)Ó+¬R¯Y©YÓ	7€BØ�8Ð&Ð&rn   c                   ó$   • \ rS rSrSrS rS rSrg)r   i"  r¡   c                 ó\   • U R                   R                  U R                  R                  -   $ rz   ©rv   r�   r¢   r€   s    ro   r‘   Úadd.compute_r%  ó   € Ø�v‰v�x‰x˜$Ÿ&™&Ÿ(™(Ñ"Ð"rn   c                 ó¸   • XR                   La  XR                  La  g U R                   U R                  L a  SOSn[        U R                   U R                  X5      $ )Nrÿ   r  ©rv   r¢   rŒ  ©r�   r‰   Úms      ro   rŠ   Úadd.compute_dr_wrt(  sE   € Ø—f‘fÒ ¯F©FÒ!2Øà—&‘&˜DŸF™FÒ"‰B¨ˆÜ  §¡¨¯©°Ó8Ð8rn   rh   Nrí   rh   rn   ro   r   r   "  ó   † Ø€Fò#õ9rn   r   c                   ó$   • \ rS rSrSrS rS rSrg)r!   i2  r¡   c                 ó\   • U R                   R                  U R                  R                  -
  $ rz   rŸ  r€   s    ro   r‘   Úsubtract.compute_r5  r¡  rn   c                 ó¢   • XR                   L XR                  L :X  a  g XR                   L a  SOSn[        U R                   U R                  X5      $ )Nr  g      ð¿r£  r¤  s      ro   rŠ   Úsubtract.compute_dr_wrt8  s?   € Ø—6‘6ˆM˜s§f¡f˜}Ó-ØàŸ™’-‰B SˆÜ  §¡¨¯©°Ó8Ð8rn   rh   Nrí   rh   rn   ro   r!   r!   2  r§  rn   r!   c                   ó.   • \ rS rSrSrSrS rS rS rSr	g)	r   iC  z:Given vector $x$, computes $x^2$ and $rac{dx^2}{x}$)r†   Úpowc                 óv   • U R                  U R                  R                  U R                  R                  5      $ rz   )Ú
safe_powerr†   r�   r®  r€   s    ro   r‘   Úpower.compute_rG  s#   € Ø�‰˜tŸv™vŸx™x¨¯©¯©Ó4Ð4rn   c                 óþ  • XR                   La  XR                  La  g U R                   R                  U R                  R                  p2/ nXR                   L a%  UR                  X0R	                  X#S-
  5      -  5        XR                  L a7  UR                  [
        R                  " U5      U R	                  X#5      -  5        [        S U5      R                  5       n[        U R                   U R                  X5      $ )Nr  c                 ó
   • X-   $ rz   rh   )r†   Úys     ro   rò   Ú&power.compute_dr_wrt.<locals>.<lambda>V  s   €  A¢Ern   )
r†   r®  r�   Úappendr°  rs   r   r\   r±   rŒ  )r�   r‰   r†   r®  rÅ   rÆ   s         ro   rŠ   Úpower.compute_dr_wrtJ  s±   € à—f‘fÒ ¯H©HÒ!4Øà—‘—‘˜4Ÿ8™8Ÿ:™:ˆ3ØˆØ—&‘&Š=Ø�M‰M˜#§¡°°r±6Ó :Ñ:Ô;Ø—(‘(Š?Ø�M‰Mœ"Ÿ&š& ›) d§o¡o°aÓ&=Ñ=Ô>äÑ)¨6Ó2×8Ñ8Ó:ˆä  §¡¨¯©°3Ó=Ð=rn   c                 óœ   • [         R                  " X5      nSUR                  5       [         R                  " UR                  5       5      '   U$ )NrX   )rs   r   r±   rt  )r�   r†   ÚsigmarÅ   s       ro   r°  Úpower.safe_power[  s4   € ä—’˜!Ó#ˆØ34ˆ�‰‹”r—x’x §¡£Ó/Ñ0Øˆrn   rh   N)
ri   rj   rk   rl   Ú__doc__rr   r‘   rŠ   r°  rm   rh   rn   ro   r   r   C  s   † ÙKØ€Fò5ò>õ"rn   r   c                   óH   • \ rS rSrSrSrSrSrS rS r	S r
S	 rS
 rS rSrg)Ú
A_extremumie  z-Superclass for various min and max subclassesrv   r¦   rÍ   c                 ó   • [         erz   ©rÛ   ©r�   r¦   s     ro   ÚfÚA_extremum.fk  ó   € Ô 3Ð3rn   c                 ó   • [         erz   r¿  rÀ  s     ro   ÚargfÚA_extremum.argfl  rÃ  rn   c                 ó6   • [        U S5      (       d  S U l        g g rÏ   rÐ   rÑ   s     ro   rÓ   ÚA_extremum.on_changedn  rÕ   rn   c                 ó^   • U R                  U R                  R                  U R                  S9$ r×   )rÁ  rv   r�   r¦   r€   s    ro   r‘   ÚA_extremum.compute_rr  s!   € Ø�v‰v�d—f‘f—h‘h T§Y¡YˆvÐ/Ð/rn   c                 óþ  • XR                   L Gan  U R                  U R                  U R                   R                  5      u  p#[        R
                  " [        R                  " X#U R                  U R                   R                  U R                  S9-  -   5      [        R                  S9R                  5       n[        R                  " UR                  5      n[        R                  " UR                  5      nU R                  R                  UR                  R                  -  S:X  a  UR                  5       S   $ [        R                  " XeU44U R                  R                  UR                  R                  4S9$ g )Nr­   rA  rV   rX   r½   )rv   Ú_stride_for_axisr¦   r�   rs   r2   ÚroundrÅ  rF  r±   r1   r¾   r=   r¿   rÀ   )r�   r‰   ÚmnÚstriderÃ   rÂ   rÆ   s          ro   rŠ   ÚA_extremum.compute_dr_wrtu  sø   € Ø—&‘&‹=à×.Ñ.¨t¯y©y¸$¿&¹&¿(¹(ÓC‰JˆBÜ—’œBŸHšH R°4·9±9¸T¿V¹V¿X¹XÈDÏIÉI°9Ð3VÑ*VÑ%VÓWÔ_a×_hÑ_hÑi×oÑoÓqˆBÜ—’˜2Ÿ7™7Ó#ˆBÜ—7’7˜2Ÿ7™7Ó#ˆDà�v‰v�{‰{˜SŸU™UŸZ™ZÑ'¨1Ó,Ø—z‘z“| A‘Ð&Ü—=’= $¨R¨Ð!1¸D¿F¹F¿K¹KÈÏÉÏÉÐ;TÑUÐUð rn   c                 ó„  • Uc1  [         R                  " S/5      n[         R                  " S/5      nX44$ [         R                  " UR                  5      R	                  UR
                  5      n[         R                  " XQS9n[         R                  " UR                  5      nU[         R                  " U5      -  nXA   nX44$ )NrX   rV   r­   )	rs   r   r1   r¾   r°   r5   r   Ústridesr   )r�   r¦   ÚmtxrÎ  rÏ  ÚidxsÚmtx_stridess          ro   rÌ  ÚA_extremum._stride_for_axis�  s”   € Ø‰<Ü—’˜1˜#“ˆBÜ—X’X˜q˜c“]ˆFð ˆzÐô —9’9˜SŸX™XÓ&×.Ñ.¨s¯y©yÓ9ˆDÜ—’˜Ñ)ˆBÜŸ(š( 3§;¡;Ó/ˆKØ ¤2§6¢6¨+Ó#6Ñ6ˆFØ‘\ˆFØˆzÐrn   r­   N)ri   rj   rk   rl   r»  rr   rÈ   rÉ   rÁ  rÅ  rÓ   r‘   rŠ   rÌ  rm   rh   rn   ro   r½  r½  e  s/   † Ù7Ø€FØ€EØ€Jâ3Ú3òò0ò
Võrn   r½  c                   ó    • \ rS rSrS rS rSrg)r   i�  c                 ó.   • [         R                  " U0 UD6$ rz   )rs   r   ©r�   ÚargsÚkwargss      ro   rÁ  Úamax.f‘  ó   € ¬B¯GªG°TÐ,D¸VÑ,DÐ%Drn   c                 ó.   • [         R                  " U0 UD6$ rz   )rs   r_   rÙ  s      ro   rÅ  Ú	amax.argf’  ó   € ¬B¯IªI°tÐ,F¸vÑ,FÐ%Frn   rh   N©ri   rj   rk   rl   rÁ  rÅ  rm   rh   rn   ro   r   r   �  ó   † ÚDÝFrn   r   c                   ó    • \ rS rSrS rS rSrg)r   i–  c                 ó.   • [         R                  " U0 UD6$ rz   )rs   r   rÙ  s      ro   rÁ  Úamin.f—  rÝ  rn   c                 ó.   • [         R                  " U0 UD6$ rz   )rs   ra   rÙ  s      ro   rÅ  Ú	amin.argf˜  rà  rn   rh   Nrá  rh   rn   ro   r   r   –  râ  rn   r   c                   ó    • \ rS rSrS rS rSrg)r
   iœ  c                 ó.   • [         R                  " U0 UD6$ rz   )rs   r
   rÙ  s      ro   rÁ  Únanmin.f�  rà  rn   c                 ó.   • [         R                  " U0 UD6$ rz   )rs   rb   rÙ  s      ro   rÅ  Únanmin.argfž  ó   € ¬B¯LªL¸$Ð,IÀ&Ñ,IÐ%Irn   rh   Nrá  rh   rn   ro   r
   r
   œ  ó   † ÚFÝIrn   r
   c                   ó    • \ rS rSrS rS rSrg)r	   i   c                 ó.   • [         R                  " U0 UD6$ rz   )rs   r	   rÙ  s      ro   rÁ  Únanmax.f¡  rà  rn   c                 ó.   • [         R                  " U0 UD6$ rz   )rs   r`   rÙ  s      ro   rÅ  Únanmax.argf¢  rí  rn   rh   Nrá  rh   rn   ro   r	   r	      rî  rn   r	   c                   ó$   • \ rS rSrSrS rS rSrg)ÚExtremumi¥  r¡   c                 óv   • U R                  U R                  R                  U R                  R                  5      $ rz   )rÁ  rv   r�   r¢   r€   s    ro   r‘   ÚExtremum.compute_r¨  s"   €  §¡ t§v¡v§x¡x°·±·±Ó :Ð:rn   c           	      ó  • XR                   La  XR                  La  g [        U R                   U R                  U5      u  p#pEXR                   L ai  U R                  U R	                  U R                   R                  U R                  R                  U R	                  SS5      -
  5      :H  R                  5       nOhU R                  U R	                  U R                  R                  U R                   R                  U R	                  SS5      -
  5      :H  R                  5       nX&   nX6   n[        R                  " UR                  5      n[        R                  " XrU44U R                  R                  UR                  R                  4S9$ )NrV   r¬   r½   )rv   r¢   ri  r�   rÁ  r±   rs   r=   r¾   r¿   rÀ   )r�   r‰   rÂ   rÃ   rj  rk  ÚwhichmaxrÆ   s           ro   rŠ   ÚExtremum.compute_dr_wrtª  s  € Ø—f‘fÒ ¯F©FÒ!2Øä&6°t·v±v¸t¿v¹vÀsÓ&KÑ#ˆ�Ø—&‘&Š=ØŸ™ $§&¡&¨¯©¯©°4·6±6·8±8¸D¿F¹FÀ1ÀR»LÑ3HÓ"IÑI×PÑPÓR‰HàŸ™ $§&¡&¨¯©¯©°4·6±6·8±8¸D¿F¹FÀ1ÀR»LÑ3HÓ"IÑI×PÑPÓRˆHØ‰\ˆØ‰\ˆÜ�wŠw�r—w‘wÓˆä�}Š}˜d¨ HÐ-°d·f±f·k±kÀ3Ç5Á5Ç:Á:Ð5NÑOÐOrn   rh   Nrí   rh   rn   ro   rõ  rõ  ¥  s   † Ø€Fâ:õPrn   rõ  c                   ó   • \ rS rSrS rSrg)r   i¹  c                 ó.   • [         R                  " X5      $ rz   )rs   r   ©r�   rv   r¢   s      ro   rÁ  Ú	maximum.fº  ó   € œbŸjšj¨Ó.Ð.rn   rh   N©ri   rj   rk   rl   rÁ  rm   rh   rn   ro   r   r   ¹  ó   † Ý.rn   r   c                   ó   • \ rS rSrS rSrg)r   i¼  c                 ó.   • [         R                  " X5      $ rz   )rs   r   rý  s      ro   rÁ  Ú	minimum.f½  rÿ  rn   rh   Nr   rh   rn   ro   r   r   ¼  r  rn   r   c                   ó$   • \ rS rSrSrS rS rSrg)r   iÀ  r¡   c                 ó\   • U R                   R                  U R                  R                  -  $ rz   rŸ  r€   s    ro   r‘   Úmultiply.compute_rÃ  r¡  rn   c                 ó2  • XR                   La  XR                  La  g XR                  L a  U R                   R                  O)[        R                  " U R                   R
                  5      nXR                   L a$  XR                  La  U R                  R                  O)[        R                  " U R                  R
                  5      nX#-  R                  5       nU R                   U R                  L a  US-  n[        U R                   U R                  X5      $ rþ   )rv   r¢   r�   rs   r=   r5   r±   rŒ  )r�   r‰   rŠ  r‹  rÆ   s        ro   rŠ   Úmultiply.compute_dr_wrtÆ  s¯   € Ø—f‘fÒ ¯F©FÒ!2Øà§¡šˆT�V‰V�XŠX¬B¯GªG°D·F±F·L±LÓ,AˆØ§¡š-¨C·v±vÒ,=ˆT�V‰V�XŠXÄBÇGÂGÈDÏFÉFÏLÉLÓDYˆØ‘�‰Ó ˆà�6‰6�T—V‘VÒØ�B‰JˆDä  §¡¨¯©°Ó;Ð;rn   rh   Nrí   rh   rn   ro   r   r   À  s   † Ø€Fò#õ<rn   r   c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	r$   i×  r¡   c                 ót   • U R                   R                  R                  U R                  R                  5      $ rz   )rv   r�   r$   r¢   r€   s    ro   r‘   Údot.compute_rÚ  s!   € Ø�v‰v�x‰x�|‰|˜DŸF™FŸH™HÓ%Ð%rn   c                 ó  • [        U R                  R                  R                  5      S:  a  [	        U R                  R                  5      OGU R                  R                  R                  SU R                  R                  R                  S   45      n[        U R                  R                  R                  5      S:  a  [        U R                  R                  5      OGU R                  R                  R                  U R                  R                  R                  S   S45      nUR                  S::  aP  [        R                  " [        R                  " UR                  S   UR                  S   5      UR                  5      $ [        e)Nr+  r¬   rX   )rè   rv   r�   r5   rZ   r°   r¢   r[   rE  r¿   Úkronr;   rÜ   rÛ   ©r�   ÚarÚbrs      ro   Ú
compute_d1Údot.compute_d1Ý  sî   € ä! $§&¡&§(¡(§.¡.Ó1°!Ó3ŒS�—‘—‘Œ]¸¿¹¿¹×9IÑ9IÈ2ÈtÏvÉvÏxÉxÏ~É~Ð^`ÑOaÐJbÓ9cˆÜ! $§&¡&§(¡(§.¡.Ó1°!Ó3ŒS�—‘—‘Œ]¸¿¹¿¹×9IÑ9IÈ4Ï6É6Ï8É8Ï>É>ÐZ[ÑK\Ð^`ÐJaÓ9bˆà�7‰7�a‹<Ü—7’7œ2Ÿ6š6 "§(¡(¨1¡+¨r¯x©x¸©{Ó;¸B¿D¹DÓAÐAä%Ð%rn   c                 óB  • [        U R                  R                  R                  5      S:  a  [	        U R                  R                  5      OGU R                  R                  R                  SU R                  R                  R                  S   45      n[        U R                  R                  R                  5      S:  a  [        U R                  R                  5      OGU R                  R                  R                  U R                  R                  R                  S   S45      nUR                  S::  a  U R                  $ UR                  S::  aF  [        R                  " U[        R                  " UR                  S   UR                  S   5      5      $ [        e)Nr+  r¬   rX   rV   )rè   rv   r�   r5   rZ   r°   r¢   r[   rE  r  r¿   r  r;   rÛ   r  s      ro   Ú
compute_d2Údot.compute_d2ç  s   € ô " $§&¡&§(¡(§.¡.Ó1°!Ó3ŒS�—‘—‘Œ]¸¿¹¿¹×9IÑ9IÈ2ÈtÏvÉvÏxÉxÏ~É~Ð^`ÑOaÐJbÓ9cˆÜ! $§&¡&§(¡(§.¡.Ó1°!Ó3ŒS�—‘—‘Œ]¸¿¹¿¹×9IÑ9IÈ4Ï6É6Ï8É8Ï>É>ÐZ[ÑK\Ð^`ÐJaÓ9bˆà�7‰7�a‹<Ø—7‘7ˆNØ�W‰W˜‹\Ü—7’7˜2œrŸvšv b§h¡h¨q¡k°"·(±(¸1±+Ó>Ó?Ð?ä%Ð%rn   c                 óö   • XR                   L a/  XR                  L a!  U R                  5       U R                  5       -   $ XR                   L a  U R                  5       $ XR                  L a  U R                  5       $ g rz   )rv   r¢   r  r  rˆ   s     ro   rŠ   Údot.compute_dr_wrtõ  s]   € à—&‘&Š=˜S§F¡Fš]Ø—?‘?Ó$ t§¡Ó'8Ñ8Ð8Ø—F‘FŠ]Ø—?‘?Ó$Ð$Ø—F‘FŠ]Ø—?‘?Ó$Ð$ð rn   rh   N)
ri   rj   rk   rl   rr   r‘   r  r  rŠ   rm   rh   rn   ro   r$   r$   ×  s   † Ø€Fò&ò&ò&õ%rn   r$   c                   ó$   • \ rS rSrSrS rS rSrg)ÚBinaryElemwiseNoDrviþ  rc  c                 óv   • U R                  U R                  R                  U R                  R                  5      $ rz   )Ú_frd  r�   re  r€   s    ro   r‘   ÚBinaryElemwiseNoDrv.compute_r  s#   € Ø�w‰w�t—w‘w—y‘y $§'¡'§)¡)Ó,Ð,rn   c                 ó   • g rz   rh   rˆ   s     ro   rŠ   Ú"BinaryElemwiseNoDrv.compute_dr_wrt  rŒ   rn   rh   Nrí   rh   rn   ro   r  r  þ  s   † Ø€Fò-õrn   r  c                   ó   • \ rS rSrS rSrg)r(   i  c                 ó.   • [         R                  " X5      $ rz   )rs   r(   rý  s      ro   r  Ú
greater._f  s   € œrŸzšz¨!›Ð.rn   rh   N©ri   rj   rk   rl   r  rm   rh   rn   ro   r(   r(     r  rn   r(   c                   ó   • \ rS rSrS rSrg)r)   i
  c                 ó.   • [         R                  " X5      $ rz   )rs   r)   rý  s      ro   r  Úgreater_equal._f  s   € œr×/Ò/°Ó4Ð4rn   rh   Nr#  rh   rn   ro   r)   r)   
  s   † Ý4rn   r)   c                   ó   • \ rS rSrS rSrg)r*   i  c                 ó.   • [         R                  " X5      $ rz   )rs   r*   rý  s      ro   r  Úless._f  s   € œrŸwšw q›|Ð+rn   rh   Nr#  rh   rn   ro   r*   r*     s   † Ý+rn   r*   c                   ó   • \ rS rSrS rSrg)r+   i  c                 ó.   • [         R                  " X5      $ rz   )rs   r+   rý  s      ro   r  Úless_equal._f  s   € œrŸ}š}¨QÓ1Ð1rn   rh   Nr#  rh   rn   ro   r+   r+     r™   rn   r+   c                   ó   • \ rS rSrS rSrg)r,   i  c                 ó.   • [         R                  " X5      $ rz   )rs   r,   rý  s      ro   r  Úequal._f  s   € œrŸxšx¨›}Ð,rn   rh   Nr#  rh   rn   ro   r,   r,     s   † Ý,rn   r,   c                   ó   • \ rS rSrS rSrg)r-   i  c                 ó.   • [         R                  " X5      $ rz   )rs   r-   rý  s      ro   r  Únot_equal._f  s   € œrŸ|š|¨AÓ0Ð0rn   rh   Nr#  rh   rn   ro   r-   r-     s   † Ý0rn   r-   c                 óh   • [        U S5      (       a  U R                  n [        R                  " U 5      $ )Nr‘   )ru   r�   rs   r.   r}  s    ro   r.   r.     s&   € Üˆq�+×ÑØ�C‰CˆÜ�:Š:�a‹=Ðrn   znp_tensordot.pyr�   Ú Ú	tensordotc                  ó   • g rz   rh   rh   rn   ro   Úmainr7  (  s   € Ørn   Ú__main__)NNrz   )r¬   r¬   r¬   N)NNNrX   F)nr»  Ú__all__Únumpy_array_creation_routinesÚwont_implementÚnot_yet_implementedÚchrW   ÚsixÚnumpyrs   r  Ú	six.movesrY   r}   Úscipy.sparseÚsparser¿   ÚutilsrZ   r[   r3   r�  Ú	functoolsr\   r]   r^   r1   ÚrtnÚexecrŽ  rf   r2   r/   r0   rP   r„   r&   r'   r6   rŸ   r4   r%   rà   r#   r"   r   r  r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r7   r   r8   r5   r€  r†  rŒ  r�  r›  ri  r   r!   r   r½  r   r   r   r   r
   r	   rõ  r   r   r   r$   r  r(   r)   r*   r+   r,   r-   r.   ÚosÚpathÚjoinÚdirnameÚabspathÚ__file__Úsource_pathÚopenrÁ  Ú	readlinesÚsource_linesr7  ri   rh   rn   ro   Ú<module>rQ     s¬  ðñò€ð ˆNØðñ €ò!Ð ò f€Ú0Ð à ÐÑ €Ø ˆ>Ñ €Ø Ð(Ñ (€õ Û 
Û Û Ý 'Ý ß Ý "Ý à ˆDÐ$Ð%Ñ %€Ø‡U�U€Ø×&Ñ&Ð Ø	�‰€ã9€CÚÓloÓqtÓvyÐ	zÔ{Ø�ˆuÑ‚Gñ :ó 2€CÚÓUXÓZ]Ó_bÐ	cÔdØ�ˆuÑ‚Gñ 2ó )€CÚË#ËsÐ	SÖTñ )ô	�Iô 	ó €CÙÐ	8¸CÑ	@ÖAñ ó €CÙÐ	>À#Ñ	FÖGñ ô+ô /ð €ò,ô 7ô�ô ô
3ˆIô 3ô2ˆ9ô 2ô2ˆ9ô 2ô@ˆBô @ôD2ôˆRô ô>	_�Bô 	_ôA�ô Aô7�ô 7ô!ˆ]ô !ò-ô
1ˆ=ô 1ôˆ-ô ôˆ-ô ôˆ-ô ôBˆ]ô Bô%ˆ-ô %ôCˆ]ô Cô7ˆ-ô 7ô9ˆ]ô 9ô7ˆ}ô 7ô%ˆ}ô %ð €ô_ˆ2ô _ô&ˆ"ô &ôD&ˆ2ô &ôD"ô
#ô,�2ô ,ôPˆbô Pô0�ô ò<;ð €Ø€ò%ðT Ð ò&ò>'ô9ˆ"ô 9ô 9ˆrô 9ô"ˆRô ôD(�ô (ôVGˆ:ô Gð €ôGˆ:ô Gð €ôJˆZô JôJˆZô Jô
Pˆrô Pô(/ˆhô /ô/ˆhô /ô<ˆrô <ô.%%ˆ"ô %%ôN˜"ô ô/Ð!ô /ô5Ð'ô 5ô,Ðô ,ô2Ð$ô 2ô-Ðô -ô1Ð#ô 1òó 
Ø�g‰g�l‰l˜2Ÿ7™7Ÿ?™?¨2¯7©7¯?©?¸8Ó+DÓEÐGXÓY€Ù	ˆ+�sÔ˜qØ—;‘;“=€L÷ á €R‡W�Wˆ\ÓÔ Ø ˆKˆ=Ñ €ò	ð ˆzÓÙ…Fð ÷ Õús   Î<PÐ
P