Ë
    7^(h»G  ã                   ó¢  — d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z>m?Z? d dl@mAZA d dlBmCZCmDZDmEZEmFZFmGZG d dlHmIZI d dlJmKZKmLZL d dlMmNZNmOZO d dlPmQZQmRZR d dlSmTZTmUZUmVZVmWZWmXZX d dlYmZZZ d dl[m\Z\  ed«      \  Z]Z^Z_ eQd«      Z`d„ Zad„ Zbd„ Zcd„ Zdd„ Zed„ Zfd „ Zgd!„ Zhd"„ Zid#„ Zjd$„ Zk G d%„ d&e«      Zld'„ Zmd(„ Znd)„ Zod*„ Zpd+„ Zqd,„ Zrd-„ Zsd.„ Ztd/„ Zud0„ Zvd1„ Zwd2„ Zxd3„ Zyy4)5é    )ÚNot)Ú
Assignment)Únone)Úexpm1Úlog1p)Úcosm1)ÚMatrixSolve)
ÚExprÚModÚsymbolsÚEqÚLeÚGtÚzooÚooÚRationalÚPow)Ú
Derivative)Úpi)ÚS)ÚacosÚKroneckerDeltaÚ	PiecewiseÚsignÚsqrtÚMinÚMaxÚcotÚacschÚasecÚcothÚsecÚlogÚsinÚcosÚtanÚasinÚatanÚsinhÚcoshÚtanhÚasinhÚacoshÚatanh)Úatan2)ÚAndÚOr)ÚSparseMatrixÚMatrixSymbolÚIdentity)ÚPrintMethodNotImplementedError)ÚMpmathPrinterÚCmathPrinterÚPythonCodePrinterÚpycodeÚSymPyPrinter)ÚTensorflowPrinter)ÚNumPyPrinterÚSciPyPrinter)ÚraisesÚskip)ÚIndexedBaseÚIdx)ÚArraySymbolÚArrayDiagonalÚArrayContractionÚ	ZeroArrayÚOneArray)Úimport_module)Úloggammazx y zÚpc            
      ó.  — t        «       } | j                  rJ ‚| j                  t        t        z  «      dk(  sJ ‚| j                  t        t        d«      «      dk(  sJ ‚| j                  t        t        t        «       «      dk(  sJ ‚| j                  t        t         t        «      «      dk(  sJ ‚| j                  t        t        t        «      «      dk(  sJ ‚| j                  t        t        t        «      «      dk(  sJ ‚| j                  dt        t        z   z  «      d	k(  sJ ‚| j                  t        t        «      «      d
k(  sJ ‚| j                  rJ ‚| j                  t        «      dk(  sJ ‚| j                  ddhik(  sJ ‚| j                  t        t        dd«      z  «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  dddhik(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t!        t        «      «      dk(  sJ ‚| j                  t#        t        d«      «      dk(  sJ ‚| j                  t%        dt'        t        d«      fdt        dkD  f«      «      dk(  sJ ‚| j                  t%        dt)        t        d«      fdt+        t        d«      fd¬«      «      dk(  sJ ‚| j                  t-        t        «      «      dk(  sJ ‚| j                  t.        d   «      dk(  sJ ‚| j                  t1        t        t        «      «      d k(  sJ ‚| j                  d!«      d"k(  sJ ‚| j                  ddg«      d#k(  sJ ‚| j                  t3        t        t        «      «      d$k(  sJ ‚| j                  t5        t        t        «      «      d%k(  sJ ‚y )&Nzx**yé   zx % 2z-(x % y)z(-x) % yzx and yzx or yé   z	1/(x + y)znot xzmath.piÚmathr   úmath.sqrt(x)r   zmath.acos(x)z(1/math.tan(x))z;((math.exp(x) + math.exp(-x))/(math.exp(x) - math.exp(-x)))z(math.acos(1/x))z((math.log(math.sqrt(1 + x**(-2)) + 1/x))zx = 2r   é   z/((1) if (x == 0) else (2) if (x > 6) else None)é   F©Úevaluatez/((2) if (x <= 0) else (3) if (x > 0) else None)z((0.0 if x == 0 else math.copysign(1, x))©r   rL   zp[0, 1]z(1 if x == y else 0)©rK   rP   z(2, 3)z[2, 3]z	min(x, y)z	max(x, y))r8   Úmodule_importsÚdoprintÚxÚyr   r0   r1   r   r   r   r   r   r   r!   r    r   r   r   r   r   r   r   rI   r   r   r   ©Úprntrs    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/tests/test_pycode.pyÚtest_PythonCodePrinterr\   !   s�  € ÜÓ€Eà×#Ò#Ð#Ð#à�=‰=œœA™Ó &Ò(Ð(Ð(Ø�=‰=œœQ ›Ó# wÒ.Ð.Ð.Ø�=‰=œ#œa¤›)˜Ó$¨
Ò2Ð2Ð2Ø�=‰=œœa˜R¤›Ó$¨
Ò2Ð2Ð2Ø�=‰=œœQ¤›Ó# yÒ0Ð0Ð0Ø�=‰=œœAœq›Ó" hÒ.Ð.Ð.Ø�=‰=˜œAœa™C™Ó! [Ò0Ð0Ð0Ø�=‰=œœQ›Ó  GÒ+Ð+Ð+Ø×#Ò#Ð#Ð#à�=‰=œÓ 	Ò)Ð)Ð)Ø×Ñ F¨T¨FÐ#3Ò3Ð3Ð3à�=‰=œœH Q¨›NÑ*Ó+¨~Ò=Ð=Ð=Ø�=‰=œœa›Ó! ^Ò3Ð3Ð3Ø×Ñ F¨T°6¨NÐ#;Ò;Ð;Ð;à�=‰=œœa›Ó! ^Ò3Ð3Ð3Ø�=‰=œœQ›Ó Ð$5Ò5Ð5Ð5Ø�=‰=œœa›Ó!Ð%bÒbÐbÐbØ�=‰=œœa›Ó!Ð%7Ò7Ð7Ð7Ø�=‰=œœq›Ó"Ð&PÒPÐPÐPà�=‰=œ¤A qÓ)Ó*¨gÒ5Ð5Ð5Ø�=‰=œ A¤r¬!¨Q£x =ØœA˜a™C˜ó"ó #Ø&WòXð Xð Xà�=‰=œ A¤r¬!¨Q£x =ØœBœq !›H˜°ô7ó 8ð<UòUð Uð Uð �=‰=œœa›Ó!Ð%OÒOÐOÐOØ�=‰=œ˜4™Ó! YÒ.Ð.Ð.Ø�=‰=œ¬¬!Ó,Ó-Ð1GÒGÐGÐGà�=‰=˜Ó 8Ò+Ð+Ð+Ø�=‰=˜!˜A˜Ó 8Ò+Ð+Ð+à�=‰=œœQ¤›Ó# {Ò2Ð2Ð2Ø�=‰=œœQ¤›Ó# {Ò2Ð2Ñ2ó    c                  ó\   — t        «       } | j                  dk(  sJ ‚t        t        d„ «       y )NÚpython3c                  ó   — t        ddi«      S )NÚstandardÚpython4)r8   © r]   r[   ú<lambda>z1test_PythonCodePrinter_standard.<locals>.<lambda>S   s   € Ô0°*¸YÐ1GÓH€ r]   )r8   ra   r>   Ú
ValueErrorrY   s    r[   Útest_PythonCodePrinter_standardrf   N   s'   € ÜÓ€Eà�>‰>˜YÒ&Ð&Ð&ä
Œ:ÑHÕIr]   c                  óì  — t        «       } | j                  t        t        «      «      dk(  sJ ‚| j                  t	        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      d	k(  sJ ‚| j                  t        t        «      «      d
k(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚| j                  t!        t        «      «      dk(  sJ ‚y )Nzcmath.sqrt(x)zcmath.log(x)zcmath.sin(x)zcmath.cos(x)zcmath.tan(x)zcmath.asin(x)zcmath.acos(x)zcmath.atan(x)zcmath.sinh(x)zcmath.cosh(x)zcmath.tanh(x)zcmath.asinh(x)zcmath.acosh(x)zcmath.atanh(x))r7   rV   r   rW   r#   r$   r%   r&   r'   r   r(   r)   r*   r+   r,   r-   r.   ©rI   s    r[   Útest_CmathPrinterri   V   s†  € Ü‹€Aà�9‰9”Tœ!“WÓ Ò0Ð0Ð0Ø�9‰9”Sœ“VÓ Ò.Ð.Ð.à�9‰9”Sœ“VÓ Ò.Ð.Ð.Ø�9‰9”Sœ“VÓ Ò.Ð.Ð.Ø�9‰9”Sœ“VÓ Ò.Ð.Ð.à�9‰9”Tœ!“WÓ Ò0Ð0Ð0Ø�9‰9”Tœ!“WÓ Ò0Ð0Ð0Ø�9‰9”Tœ!“WÓ Ò0Ð0Ð0à�9‰9”Tœ!“WÓ Ò0Ð0Ð0Ø�9‰9”Tœ!“WÓ Ò0Ð0Ð0Ø�9‰9”Tœ!“WÓ Ò0Ð0Ð0à�9‰9”Uœ1“XÓÐ"2Ò2Ð2Ð2Ø�9‰9”Uœ1“XÓÐ"2Ò2Ð2Ð2Ø�9‰9”Uœ1“XÓÐ"2Ò2Ð2Ñ2r]   c                  óÜ  — t        «       } | j                  t        t        «      «      dk(  sJ ‚| j                  t	        dd«      «      dk(  sJ ‚| j                  t
        j                  «      dk(  sJ ‚| j                  t
        j                  «      dk(  sJ ‚| j                  t
        j                  «      dk(  sJ ‚| j                  t
        j                  «      dk(  sJ ‚| j                  t
        j                  «      d	k(  sJ ‚| j                  t
        j                  «      d
k(  sJ ‚| j                  t
        j                  «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚y )Nzmpmath.sign(x)rL   rK   zmpmath.mpf(1)/mpmath.mpf(2)zmpmath.ez	mpmath.piz
mpmath.phizmpmath.eulerz
mpmath.nanz
mpmath.infzmpmath.ninfzmpmath.loggamma(x))r6   rV   r   rW   r   r   ÚExp1ÚPiÚGoldenRatioÚ
EulerGammaÚNaNÚInfinityÚNegativeInfinityrH   rh   s    r[   Útest_MpmathPrinterrr   m   s  € Ü‹€AØ�9‰9”Tœ!“WÓÐ!1Ò1Ð1Ð1Ø�9‰9”X˜a “^Ó$Ð(EÒEÐEÐEà�9‰9”Q—V‘VÓ 
Ò*Ð*Ð*Ø�9‰9”Q—T‘T‹?˜kÒ)Ð)Ð)Ø�9‰9”Q—]‘]Ó# |Ò3Ð3Ð3Ø�9‰9”Q—\‘\Ó" nÒ4Ð4Ð4Ø�9‰9”Q—U‘UÓ˜|Ò+Ð+Ð+Ø�9‰9”Q—Z‘ZÓ  LÒ0Ð0Ð0Ø�9‰9”Q×'Ñ'Ó(¨MÒ9Ð9Ð9Ø�9‰9”Xœa“[Ó!Ð%9Ò9Ð9Ñ9r]   c                  óf  — ddl m}  ddlm} ddlm}m}m} ddlm	} ddl
m} ddlm} ddlm}m}	 dd	lm}
m} t)        «       }|j+                  t-        t.        «      «      d
k(  sJ ‚t1        ddd«      }t1        ddd«      }t1        ddd«      }t1        ddd«      }|j+                  |dz  «      dk(  sJ ‚|j+                  |dz  «      dk(  sJ ‚|j+                  t3        d«      «      dk(  sJ ‚t1        ddd«      }t1        ddd«      }|j+                  t5        ||«      «      dk(  sJ ‚|j+                  t5        ||«      |z   «      dk(  sJ ‚|j+                   |	dd«      «      dk(  sJ ‚|j+                   |dd«      «      dk(  sJ ‚|j+                   |dd | |
|f|
|z   «      «      «      dk(  sJ ‚|j+                   |||«      «      dk(  sJ ‚|j+                   |||«      «      d k(  sJ ‚|j+                   ||«      «      d!k(  sJ ‚|j+                   ||«      «      d"k(  sJ ‚|j+                   ||«      «      d#k(  sJ ‚|j+                   ||«      «      d$k(  sJ ‚|j+                  t.        dz  «      d%k(  sJ ‚|j+                  t.        d&z  «      d'k(  sJ ‚t7        ddd(¬)«      }|j+                  |«      d*k(  sJ ‚|j+                  t8        j:                  «      d+k(  sJ ‚|j+                  t8        j<                  «      d,k(  sJ ‚|j+                  t8        j>                  «      d-k(  sJ ‚|j+                  t8        j@                  «      d.k(  sJ ‚|j+                  t8        jB                  «      d/k(  sJ ‚|j+                  t8        jD                  «      d0k(  sJ ‚|j+                  tG        t.        «      dz  «      d1k(  sJ ‚y )2Nr   )ÚLambda)ÚAdjoint)Ú
DiagMatrixÚDiagonalMatrixÚ
DiagonalOf)ÚFunctionMatrix)ÚHadamardProduct)ÚKroneckerProduct)Ú	OneMatrixÚ
ZeroMatrix)ÚaÚbznumpy.sign(x)ÚArK   ÚBÚCrL   é   ÚDrP   é   éÿÿÿÿznumpy.linalg.inv(A)znumpy.linalg.matrix_power(A, 5)znumpy.eye(3)rW   rX   znumpy.linalg.solve(A, x)znumpy.linalg.solve(A, x) + yznumpy.zeros((2, 3))znumpy.ones((2, 3))z.numpy.fromfunction(lambda a, b: a + b, (4, 5))znumpy.multiply(A, B)znumpy.kron(A, B)z#numpy.conjugate(numpy.transpose(A))z%numpy.reshape(numpy.diag(A), (-1, 1))znumpy.diagflat(C)z"numpy.multiply(D, numpy.eye(3, 4))z	x**(-1.0)éþÿÿÿz	x**(-2.0)FrQ   z	2**(-1.0)únumpy.eznumpy.piznumpy.euler_gammaz	numpy.nanz	numpy.infz
-numpy.infz(numpy.cos(x)**(-1.0))**2)$Úsympy.core.functionrt   Ú"sympy.matrices.expressions.adjointru   Ú#sympy.matrices.expressions.diagonalrv   rw   rx   Ú%sympy.matrices.expressions.funcmatrixry   Ú#sympy.matrices.expressions.hadamardrz   Ú$sympy.matrices.expressions.kroneckerr{   Ú"sympy.matrices.expressions.specialr|   r}   Ú	sympy.abcr~   r   r<   rV   r   rW   r3   r4   r	   r   r   rk   rl   rn   ro   rp   rq   r"   )rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   rI   r€   r�   r‚   r„   ÚuÚvÚexprs                       r[   Útest_NumPyPrinterr”   |   sm  € Ý*Ý:ß\Ñ\ÝDÝCÝEßJßÜ‹€AØ�9‰9”Tœ!“WÓ Ò0Ð0Ð0Ü�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ�S˜!˜QÓ€AØ�9‰9�Q˜‘WÓÐ!6Ò6Ð6Ð6Ø�9‰9�Q˜‘T‹?Ð?Ò?Ð?Ð?Ø�9‰9”X˜a“[Ó! ^Ò3Ð3Ð3ä�S˜!˜QÓ€AÜ�S˜!˜QÓ€AØ�9‰9”[  AÓ&Ó'Ð+EÒEÐEÐEØ�9‰9”[  AÓ&¨Ñ*Ó+Ð/MÒMÐMÐMà�9‰9‘Z  1Ó%Ó&Ð*?Ò?Ð?Ð?Ø�9‰9‘Y˜q !“_Ó%Ð)=Ò=Ð=Ð=Ø�9‰9‘^ A q©&°!°Q°¸¸Q¹Ó*?Ó@ÓAØ8ò9ð 9ð 9à�9‰9‘_ Q¨Ó*Ó+Ð/EÒEÐEÐEØ�9‰9Ñ% a¨Ó+Ó,Ð0BÒBÐBÐBØ�9‰9‘W˜Q“ZÓ Ð$IÒIÐIÐIØ�9‰9‘Z “]Ó#Ð'NÒNÐNÐNØ�9‰9‘Z “]Ó#Ð':Ò:Ð:Ð:Ø�9‰9‘^ AÓ&Ó'Ð+OÒOÐOÐOð �9‰9”Q˜‘UÓ˜{Ò*Ð*Ð*Ø�9‰9”Q˜‘UÓ˜{Ò*Ð*Ð*äˆq�"˜uÔ%€DØ�9‰9�T‹?˜kÒ)Ð)Ð)à�9‰9”Q—V‘VÓ 	Ò)Ð)Ð)Ø�9‰9”Q—T‘T‹?˜jÒ(Ð(Ð(Ø�9‰9”Q—\‘\Ó"Ð&9Ò9Ð9Ð9Ø�9‰9”Q—U‘UÓ˜{Ò*Ð*Ð*Ø�9‰9”Q—Z‘ZÓ  KÒ/Ð/Ð/Ø�9‰9”Q×'Ñ'Ó(¨LÒ8Ð8Ð8ð �9‰9”Sœ“V˜Q‘YÓÐ#>Ò>Ð>Ñ>r]   c                  óì  — t        d«      } | st        d«       ddlm}m} ddlm}  |dt        z  dz   t        dz   d	t        z  dz   «      } |t        |d«      } || j                  ddd«      «      g d
¢k(  j                  «       sJ ‚ |d«      dk(  sJ ‚ |t        dz  t        dz  «      } |t        |d«      } || j                  ddd«      «      g d¢k(  j                  «       sJ ‚ |d«      dk(  sJ ‚y )NÚnumpyznumpy not installed.r   )r   r   )Úlambdifygš™™™™™¹?rP   rL   g      à?)g      ð?g      ü?g      @r…   rK   r†   )rL   r   rL   é   é@   )
rG   r?   Ú(sympy.functions.elementary.miscellaneousr   r   Úsympy.utilities.lambdifyr—   rW   ÚlinspaceÚall)r–   r   r   r—   Úexpr1Úfuncs         r[   Útest_issue_18770r    ±   sâ   € Ü˜'Ó"€EÙÜÐ#Ô$çCÝ1á�”A‘˜‘	œ1˜q™5 #¤a¡%¨!¡)Ó,€EÙ”A�u˜gÓ&€DÙ�—‘  1 aÓ(Ó)Ò->Ñ>×CÑCÔEÐEÐEÙ�‹G�qŠLÐˆLá”�1‘”a˜‘d‹O€EÙ”A�e˜WÓ%€DÙ�—‘  A qÓ)Ó*ªlÑ:×@Ñ@ÔBÐBÐBÙ�‹7�bŠ=Ð‰=r]   c                  ó   — t        «       } t        t        «      }d| j                  vsJ ‚| j	                  |«      dk(  sJ ‚d| j                  v sJ ‚t        d„ | j                  D «       «      rJ ‚t        ddddi«      }| j	                  |«      dk(  sJ ‚d	| j                  v sJ ‚| j	                  t        j                  «      d
k(  sJ ‚| j	                  t        j                  «      dk(  sJ ‚| j	                  t        j                  «      dk(  sJ ‚y )Nr–   znumpy.arccos(x)c              3   ó>   K  — | ]  }|j                  d «      –— Œ y­w)ÚscipyN)Ú
startswith)Ú.0Úms     r[   ú	<genexpr>z$test_SciPyPrinter.<locals>.<genexpr>Ê   s   è ø€ ÒC¨Q�1—<‘< ×(ÑCùs   ‚rK   rƒ   rS   rP   z8scipy.sparse.coo_matrix(([3], ([0], [1])), shape=(2, 5))zscipy.sparsezscipy.constants.golden_ratiozscipy.constants.pirˆ   )r=   r   rW   rU   rV   Úanyr2   r   rm   rl   rk   )rI   r“   Úsmats      r[   Útest_SciPyPrinterrª   Ä   s  € Ü‹€AÜ”‹7€DØ˜!×*Ñ*Ñ*Ð*Ð*Ø�9‰9�T‹?Ð/Ò/Ð/Ð/Ø�a×&Ñ&Ñ&Ð&Ð&ÜÑC°!×2BÑ2BÔCÔCÐCÐCÜ˜˜1˜v q˜kÓ*€DØ�9‰9�T‹?ØBòCð Cð Cà˜Q×-Ñ-Ñ-Ð-Ð-à�9‰9”Q—]‘]Ó#Ð'EÒEÐEÐEØ�9‰9”Q—T‘T‹?Ð2Ò2Ð2Ð2Ø�9‰9”Q—V‘VÓ 	Ò)Ð)Ñ)r]   c                  ót   ‡‡— t        d«      \  ŠŠt        t        ˆˆfd„«       t        ‰‰z   «      } | dv sJ ‚y )Nzif elsec                  ó$   •— t        ‰ ‰z   d¬«      S )NT)Úerror_on_reserved)r9   )Ús1Ús2s   €€r[   rd   z,test_pycode_reserved_words.<locals>.<lambda>×   s   ø€ œv b¨2¡gÀÔF€ r]   )zelse_ + if_zif_ + else_)r   r>   re   r9   )Úpy_strr®   r¯   s    @@r[   Útest_pycode_reserved_wordsr±   Õ   s8   ù€ Ü�YÓ�F€BˆÜ
Œ:ÔFÔGÜ�B˜‘G‹_€FØÐ3Ñ3Ð3Ñ3r]   c                  óv   — t        d«      \  } }}| |z  }t        |«      dk(  sJ ‚||z  }t        |«      dk(  sJ ‚y )Nza_{b} b a_{11}za_b*bza_11*b)r   r9   )Úa_br   Úa_11r“   s       r[   Útest_issue_20762rµ   Ü   sI   € äÐ+Ó,�L€CˆˆDØˆq‰5€DÜ�$‹<˜7Ò"Ð"Ð"Ø�‰6€DÜ�$‹<˜8Ò#Ð#Ñ#r]   c                  ó  — t        «       } | j                  t        t        «      d¬«      dk(  sJ ‚| j                  dt        t        «      z  d¬«      dk(  sJ ‚t        ddi«      } | j                  t        t        «      d¬«      d	k(  sJ ‚| j                  dt        t        «      z  d¬«      d
k(  sJ ‚t	        «       } | j                  t        t        «      d¬«      dk(  sJ ‚| j                  t        t        «      d¬«      dk(  sJ ‚t        «       } | j                  t        t        «      d¬«      dk(  sJ ‚| j                  t        t        «      d¬«      d	k(  sJ ‚t        «       } | j                  t        t        «      d¬«      dk(  sJ ‚| j                  t        t        «      d¬«      d	k(  sJ ‚t        «       } | j                  t        t        «      d¬«      dk(  sJ ‚| j                  t        t        «      d¬«      d	k(  sJ ‚y )NF)ÚrationalrN   rL   z1/math.sqrt(x)ra   r_   Tzx**(1/2)z	x**(-1/2)zmpmath.sqrt(x)z x**(mpmath.mpf(1)/mpmath.mpf(2))znumpy.sqrt(x)zsympy.sqrt(x))r8   Ú
_print_Powr   rW   r6   r<   r=   r:   rY   s    r[   Ú	test_sqrtr¹   å   sà  € ÜÓ€EØ×ÑœD¤›G¨eÐÓ4¸ÒFÐFÐFØ×Ñ˜Aœd¤1›g™I°ÐÓ6Ð:JÒJÐJÐJä˜z¨IÐ6Ó7€EØ×ÑœD¤›G¨dÐÓ3°zÒAÐAÐAØ×Ñ˜Aœd¤1›g™I°ÐÓ5¸ÒDÐDÐDä‹O€EØ×ÑœD¤›G¨eÐÓ4Ð8HÒHÐHÐHØ×ÑœD¤›G¨dÐÓ3Ø*ò+ð +ð +ô ‹N€EØ×ÑœD¤›G¨eÐÓ4¸ÒGÐGÐGØ×ÑœD¤›G¨dÐÓ3°zÒAÐAÐAä‹N€EØ×ÑœD¤›G¨eÐÓ4¸ÒGÐGÐGØ×ÑœD¤›G¨dÐÓ3°zÒAÐAÐAä‹N€EØ×ÑœD¤›G¨eÐÓ4¸ÒGÐGÐGØ×ÑœD¤›G¨dÐÓ3°zÒAÐAÑAr]   c                  óh  — ddl m}   | t        «      }t        «       }|j	                  |«      dk(  sJ ‚t        «       }|j	                  |«      dk(  sJ ‚t        «       }|j	                  |«      dk(  sJ ‚t        «       }|j	                  |«      dk(  sJ ‚t        «       }|j	                  |«      dk(  sJ ‚y )Nr   )Úfracznumpy.mod(x, 1)zx % 1zmpmath.frac(x)z+sympy.functions.elementary.integers.frac(x))	Ú#sympy.functions.elementary.integersr»   rW   r<   rV   r=   r8   r6   r:   )r»   r“   rZ   s      r[   Ú	test_fracr½      s©   € Ý8á”‹7€DÜ‹N€EØ�=‰=˜ÓÐ"3Ò3Ð3Ð3ä‹N€EØ�=‰=˜ÓÐ"3Ò3Ð3Ð3äÓ€EØ�=‰=˜Ó 'Ò)Ð)Ð)ä‹O€EØ�=‰=˜ÓÐ"2Ò2Ð2Ð2ä‹N€EØ�=‰=˜ÓÐ"OÒOÐOÑOr]   c                   ó   — e Zd Zd„ Zd„ Zy)ÚCustomPrintedObjectc                  ó   — y)Nr–   rc   ©ÚselfÚprinters     r[   Ú
_numpycodezCustomPrintedObject._numpycode  s   € Ør]   c                  ó   — y)NÚmpmathrc   rÁ   s     r[   Ú_mpmathcodezCustomPrintedObject._mpmathcode  s   € Ør]   N)Ú__name__Ú
__module__Ú__qualname__rÄ   rÇ   rc   r]   r[   r¿   r¿     s   „ òór]   r¿   c                  ó�   — t        «       } t        «       j                  | «      dk(  sJ ‚t        «       j                  | «      dk(  sJ ‚y )Nr–   rÆ   )r¿   r<   rV   r6   )Úobjs    r[   Útest_printmethodrÍ     s@   € Ü
Ó
€CÜ‹>×!Ñ! #Ó&¨'Ò1Ð1Ð1Ü‹?×"Ñ" 3Ó'¨8Ò3Ð3Ñ3r]   c                  ó,   — t        t        «      dk(  sJ ‚y )NÚNone)r9   r   rc   r]   r[   Útest_codegen_ast_nodesrÐ   "  s   € Ü”$‹<˜6Ò!Ð!Ñ!r]   c                  ó‚   — t        «       } | j                  t        «      dk(  sJ ‚| j                  t         «      dk(  sJ ‚y )Nzmath.nanzfloat('-inf'))r8   rV   r   r   rY   s    r[   Útest_issue_14283rÒ   &  s:   € ÜÓ€Eà�=‰=œÓ Ò+Ð+Ð+Ø�=‰=œ"˜Ó Ò0Ð0Ñ0r]   c                  óV   — t        «       } | j                  t        d«      «      dk(  sJ ‚y )NrK   z(0, 1,))r<   Ú
_print_seqÚrange)Úns    r[   Útest_NumPyPrinter_print_seqr×   -  s$   € Ü‹€Aà�<‰<œ˜a›Ó! YÒ.Ð.Ñ.r]   c                  óž  — ddl m} m} t        d«      } | |t        «      } ||t        «      }t        «       }|j                  |«      dk(  sJ ‚|j                  |«      dk(  sJ ‚t        «       }t        ddi«      }||fD ]@  }t        t        «      5  |j                  |«       d d d «       d|j                  |«      v rŒ@J ‚ y # 1 sw Y   Œ!xY w)	Nr   )Ú
lowergammaÚ
uppergammar~   z3scipy.special.gamma(a)*scipy.special.gammainc(a, x)z4scipy.special.gamma(a)*scipy.special.gammaincc(a, x)ÚstrictFúNot supported)Ú'sympy.functions.special.gamma_functionsrÙ   rÚ   r   rW   r=   rV   r<   r8   r>   ÚNotImplementedError)	rÙ   rÚ   r~   rž   Úexpr2rZ   Úp_numpyÚp_pycoder“   s	            r[   Útest_issue_16535_16536râ   3  sÉ   € ßPä�‹€AÙ�qœ!Ó€EÙ�qœ!Ó€Eä‹N€EØ�=‰=˜ÓÐ#XÒXÐXÐXØ�=‰=˜ÓÐ#YÒYÐYÐYä‹n€GÜ  (¨EÐ!2Ó3€Hà˜�ò 9ˆÜÔ'Ó(ñ 	#Ø�O‰O˜EÔ"÷	#à (×"2Ñ"2°4Ó"8Ò8Ð8Ð8ñ9÷	#ð 	#ús   ÂCÃC	c                  ó¬  ‡‡‡— ddl m}  ddlm}  | | t         «      t        dt
        f«      } |t        dz   | t        t        z  «      z  t        t         t        ft        dt        f«      } |t        dz  t        «      Š |t        dz  t        df«      Št        «       Š‰j                  |«      dk(  sJ ‚‰j                  |«      dk(  sJ ‚t        t        ˆˆfd„«       t        t        ˆˆfd	„«       t        «       Š‰j                  |«      d
k(  sJ ‚‰j                  |«      dk(  sJ ‚t        t        ˆˆfd„«       t        t        ˆˆfd„«       y )Nr   )Úexp)ÚIntegralrK   rL   z>scipy.integrate.quad(lambda x: numpy.exp(-x), 0, numpy.inf)[0]zMscipy.integrate.nquad(lambda x, y: x**2*numpy.exp(x*y), ((-z, z), (0, z)))[0]c                  ó&   •— ‰j                  ‰ «      S ©N©rV   ©Ú
indefiniterZ   s   €€r[   rd   ztest_Integral.<locals>.<lambda>S  ó   ø€ ¨¯©°jÓ(A€ r]   c                  ó&   •— ‰j                  ‰ «      S rç   rè   ©Ú
evaluateatrZ   s   €€r[   rd   ztest_Integral.<locals>.<lambda>T  rë   r]   z6mpmath.quad(lambda x: mpmath.exp(-x), (0, mpmath.inf))z?mpmath.quad(lambda x, y: x**2*mpmath.exp(x*y), (-z, z), (0, z))c                  ó&   •— ‰j                  ‰ «      S rç   rè   ré   s   €€r[   rd   ztest_Integral.<locals>.<lambda>Y  rë   r]   c                  ó&   •— ‰j                  ‰ «      S rç   rè   rí   s   €€r[   rd   ztest_Integral.<locals>.<lambda>Z  rë   r]   )Ú&sympy.functions.elementary.exponentialrä   Úsympy.integrals.integralsrå   rW   r   rX   Úzr=   rV   r>   rÞ   r6   )rä   rå   ÚsingleÚdoublerî   rê   rZ   s       @@@r[   Útest_Integralrö   G  s  ú€ Ý:Ý2á‘cœ1˜"“g¤ 1¤b˜zÓ*€FÙ”a˜‘d™3œq¤™s›8‘m¤a¬!¨¬Q Z´!°Q¼°Ó;€FÙœ!˜Q™$¤Ó"€JÙœ!˜Q™$¤ A Ó'€Jä‹N€EØ�=‰=˜Ó Ð$dÒdÐdÐdØ�=‰=˜Ó Ð$sÒsÐsÐsÜ
ÔÔ AÔBÜ
ÔÔ AÔBä‹O€EØ�=‰=˜Ó Ð$\Ò\Ð\Ð\Ø�=‰=˜Ó Ð$eÒeÐeÐeÜ
ÔÔ AÔBÜ
ÔÔ AÕBr]   c                  ó*  — ddl m} m}  | t        «      } |t        «      }t	        «       }|j                  |«      dk(  sJ ‚|j                  |«      dk(  sJ ‚t        «       }t        «       }t        «       }||fD ]T  }t        t        «      5  |j                  |«       d d d «       t        t        «      5  |j                  |«       d d d «       ŒV |j                  |«      dk(  sJ ‚|j                  |«      dk(  sJ ‚y # 1 sw Y   ŒaxY w# 1 sw Y   Œ™xY w)Nr   )ÚfresnelcÚfresnelszscipy.special.fresnel(x)[1]zscipy.special.fresnel(x)[0]zmpmath.fresnelc(x)zmpmath.fresnels(x))Ú'sympy.functions.special.error_functionsrø   rù   rW   r=   rV   r<   r8   r6   r>   rÞ   )	rø   rù   rž   rß   rZ   rà   rá   Úp_mpmathr“   s	            r[   Útest_fresnel_integralsrü   ]  s  € ßLá”Q‹K€EÙ”Q‹K€Eä‹N€EØ�=‰=˜ÓÐ#@Ò@Ð@Ð@Ø�=‰=˜ÓÐ#@Ò@Ð@Ð@ä‹n€GÜ Ó"€HÜ‹€HØ˜�ò #ˆÜÔ'Ó(ñ 	"Ø�O‰O˜DÔ!÷	"äÔ'Ó(ñ 	#Ø×Ñ˜TÔ"÷	#ð 	#ð#ð ×Ñ˜EÓ"Ð&:Ò:Ð:Ð:Ø×Ñ˜EÓ"Ð&:Ò:Ð:Ñ:÷	"ð 	"ú÷	#ð 	#ús   ÂC=Â4D	Ã=D	Ä	D	c                  óx  — ddl m}   | t        t        «      }t	        «       }|j                  |«      dk(  sJ ‚t        «       }|j                  |«      dk(  sJ ‚t        «       }|j                  |«      dk(  sJ ‚t        ddi«      }|j                  |«      dk(  sJ ‚t        «       }|j                  |«      dk(  sJ ‚y )Nr   )Úbetazscipy.special.beta(x, y)z/(math.gamma(x)*math.gamma(y)/math.gamma(x + y))Úallow_unknown_functionsTzmpmath.beta(x, y))	Ú&sympy.functions.special.beta_functionsrþ   rW   rX   r=   rV   r<   r8   r6   )rþ   r“   rZ   s      r[   Ú	test_betar  t  sµ   € Ý;á””1‹:€Dä‹N€EØ�=‰=˜ÓÐ"<Ò<Ð<Ð<ä‹N€EØ�=‰=˜ÓÐ"SÒSÐSÐSäÓ€EØ�=‰=˜ÓÐ"SÒSÐSÐSäÐ8¸$Ð?Ó@€EØ�=‰=˜ÓÐ"SÒSÐSÐSä‹O€EØ�=‰=˜ÓÐ#6Ò6Ð6Ñ6r]   c                  óŒ  — ddl m} m}  | t        «      } |t        «      }t	        «       }|j                  |«      dk(  sJ ‚|j                  |«      dk(  sJ ‚t        ddi«      }d|j                  |«      v sJ ‚d|j                  |«      v sJ ‚t        ddi«      }d|j                  |«      v sJ ‚d|j                  |«      v sJ ‚y )Nr   )ÚairyaiÚairybizscipy.special.airy(x)[0]zscipy.special.airy(x)[2]rÛ   FrÜ   )Úsympy.functions.special.besselr  r  rW   r=   rV   r<   r8   )r  r  rž   rß   rZ   s        r[   Ú	test_airyr  ˆ  sÈ   € ß?á”1‹I€EÙ”1‹I€Eä‹N€EØ�=‰=˜ÓÐ#=Ò=Ð=Ð=Ø�=‰=˜ÓÐ#=Ò=Ð=Ð=ä˜( EÐ*Ó+€EØ˜eŸm™m¨EÓ2Ñ2Ð2Ð2Ø˜eŸm™m¨EÓ2Ñ2Ð2Ð2ä˜x¨Ð/Ó0€EØ˜eŸm™m¨EÓ2Ñ2Ð2Ð2Ø˜eŸm™m¨EÓ2Ñ2Ð2Ñ2r]   c                  óŒ  — ddl m} m}  | t        «      } |t        «      }t	        «       }|j                  |«      dk(  sJ ‚|j                  |«      dk(  sJ ‚t        ddi«      }d|j                  |«      v sJ ‚d|j                  |«      v sJ ‚t        ddi«      }d|j                  |«      v sJ ‚d|j                  |«      v sJ ‚y )Nr   )ÚairyaiprimeÚairybiprimezscipy.special.airy(x)[1]zscipy.special.airy(x)[3]rÛ   FrÜ   )r  r  r	  rW   r=   rV   r<   r8   )r  r	  rž   rß   rZ   s        r[   Útest_airy_primer
  š  sÈ   € ßIáœ‹N€EÙœ‹N€Eä‹N€EØ�=‰=˜ÓÐ#=Ò=Ð=Ð=Ø�=‰=˜ÓÐ#=Ò=Ð=Ð=ä˜( EÐ*Ó+€EØ˜eŸm™m¨EÓ2Ñ2Ð2Ð2Ø˜eŸm™m¨EÓ2Ñ2Ð2Ð2ä˜x¨Ð/Ó0€EØ˜eŸm™m¨EÓ2Ñ2Ð2Ð2Ø˜eŸm™m¨EÓ2Ñ2Ð2Ñ2r]   c                  óê   — t        «       } | j                  t        t        «      «      dk(  sJ ‚| j                  t	        t        «      «      dk(  sJ ‚| j                  t        t        «      «      dk(  sJ ‚y )Nznumpy.expm1(x)znumpy.log1p(x)zscipy.special.cosm1(x))r=   rV   r   rW   r   r   rY   s    r[   Ú!test_numerical_accuracy_functionsr  ­  s]   € Ü‹N€EØ�=‰=œœq›Ó"Ð&6Ò6Ð6Ð6Ø�=‰=œœq›Ó"Ð&6Ò6Ð6Ð6Ø�=‰=œœq›Ó"Ð&>Ò>Ð>Ñ>r]   c            	      óÒ  — t        dd«      } t        d«      }t        dd«      t        dd«      t        dd	«      }}}t        «       }|j	                  t        d
«      «      dk(  sJ ‚|j	                  t        d
«      «      dk(  sJ ‚|j	                  t        | ddg«      «      dk(  sJ ‚|j	                  |«      dk(  sJ ‚|j	                  t        | g d¢«      «      dk(  sJ ‚|j	                  t        | ddgddg«      «      dk(  sJ ‚|j	                  t        | dgdg«      «      dk(  sJ ‚|j	                  t        ||||f   ||||f   «      «      dk(  sJ ‚t        «       }|j	                  t        d
«      «      dk(  sJ ‚|j	                  t        d
«      «      dk(  sJ ‚|j	                  t        | ddg«      «      dk(  sJ ‚|j	                  |«      dk(  sJ ‚|j	                  t        | g d¢«      «      dk(  sJ ‚|j	                  t        | ddgddg«      «      dk(  sJ ‚|j	                  t        | dgdg«      «      dk(  sJ ‚|j	                  t        ||||f   ||||f   «      «      dk(  sJ ‚y )Nr€   )r…   r…   rO   rO   rO   ÚIÚirS   ÚjrT   Úk)r…   rƒ   rƒ   znumpy.zeros((5,))znumpy.ones((5,))rK   rP   znumpy.einsum("abccd->abd", A))rK   rP   r…   znumpy.einsum("abccc->abc", A)r   rL   znumpy.einsum("aabbc->cab", A)znumpy.einsum("abcde->abe", A)zI = Iztensorflow.zeros((5,))ztensorflow.ones((5,))z)tensorflow.linalg.einsum("abccd->abd", A)z)tensorflow.linalg.einsum("abccc->abc", A)z)tensorflow.linalg.einsum("aabbc->cab", A)z)tensorflow.linalg.einsum("abcde->abe", A))rB   r@   rA   r<   rV   rE   rF   rD   rC   r   r;   )r€   r  r  r  r  rZ   s         r[   Útest_array_printerr  ³  sl  € Ü�C˜Ó%€AÜ�CÓ€AÜ��U‹OœS  e›_¬c°#°u«oˆ€a€Aä‹N€EØ�=‰=œ 1›Ó&Ð*=Ò=Ð=Ð=Ø�=‰=œ !›Ó%Ð);Ò;Ð;Ð;Ø�=‰=Ô)¨!¨a°¨UÓ3Ó4Ð8WÒWÐWÐWØ�=‰=˜Ó˜sÒ"Ð"Ð"Ø�=‰=œ qª'Ó2Ó3Ð7VÒVÐVÐVØ�=‰=œ q¨1¨Q¨%°!°A°Ó7Ó8Ð<[Ò[Ð[Ð[Ø�=‰=Ô)¨!¨a¨S°1°#Ó6Ó7Ð;ZÒZÐZÐZØ�=‰=œ A a¨¨! e¡H¨a°°!°A°©hÓ7Ó8¸GÒCÐCÐCäÓ€EØ�=‰=œ 1›Ó&Ð*BÒBÐBÐBØ�=‰=œ !›Ó%Ð)@Ò@Ð@Ð@Ø�=‰=Ô)¨!¨a°¨UÓ3Ó4Ð8cÒcÐcÐcØ�=‰=˜Ó˜sÒ"Ð"Ð"Ø�=‰=œ qª'Ó2Ó3Ð7bÒbÐbÐbØ�=‰=œ q¨1¨Q¨%°!°A°Ó7Ó8Ð<gÒgÐgÐgØ�=‰=Ô)¨!¨a¨S°1°#Ó6Ó7Ð;fÒfÐfÐfØ�=‰=œ A a¨¨! e¡H¨a°°!°A°©hÓ7Ó8¸GÒCÐCÑCr]   c                  ó’  —  G d„ dt         «      }  | «       }t        t        «      j                  t        d¬«      }|j	                  |«      dk(  sJ ‚t        t        t        «      j                  t        dt        dd¬«      }|j	                  |«      dk(  sJ ‚	 |j	                  t        t        «      j                  t        d¬«      «       J ‚# t        $ r}d	t        |«      v sJ ‚Y d }~nd }~ww xY w	 |j	                  t        t        t        dz  «      t        «      «       J ‚# t        $ r}d
t        |«      v sJ ‚Y d }~y d }~ww xY w)Nc                   ó   — e Zd Zd„ Zd„ Zy)ú1test_custom_Derivative_methods.<locals>.MyPrinterc                 ó>   — |\  }|\  }d| j                  |«      |fz  S )Nz#my_custom_cosm1(%s, deriv_order=%d)©Ú_print)rÂ   ÚargsÚ
seq_ordersÚargÚorders        r[   Ú_print_Derivative_cosm1zItest_custom_Derivative_methods.<locals>.MyPrinter._print_Derivative_cosm1Ï  s)   € Ø‰DˆCØ‰FˆEØ8¸D¿K¹KÈÓ<LÈeÐ;TÑTÐTr]   c                 ód   — |\  }}|\  }}d| j                  |«      | j                  |«      ||fz  S )Nz-my_custom_atan2(%s, %s, deriv1=%d, deriv2=%d)r  )rÂ   r  r  Úarg1Úarg2Úord1Úord2s          r[   Ú_print_Derivative_atan2zItest_custom_Derivative_methods.<locals>.MyPrinter._print_Derivative_atan2Ô  sB   € Ø‰JˆD�$Ø#‰JˆD�$ØBØ—‘˜DÓ! 4§;¡;¨tÓ#4°d¸DðFñ ð r]   N)rÈ   rÉ   rÊ   r  r#  rc   r]   r[   Ú	MyPrinterr  Î  s   „ ò	Uó
	r]   r$  FrQ   z!my_custom_cosm1(x, deriv_order=1)rK   rP   z)my_custom_atan2(x, y, deriv1=2, deriv2=3)Ú_print_Derivative_expm1z_print_Derivative()r=   r   rW   ÚdiffrV   r/   rX   r   r5   Úreprr   re   )r$  rI   Úcosm1_1Ú	atan2_2_3Úes        r[   Útest_custom_Derivative_methodsr+  Í  s  € ô”Lô ñ 	‹€AÜ”A‹h�m‰mœA¨ˆmÓ.€GØ�9‰9�WÓÐ!DÒDÐDÐDÜ”aœ“× Ñ ¤ A¤q¨!°eÐ Ó<€IØ�9‰9�YÓÐ#NÒNÐNÐNðØ	�	‰	”%œ“(—-‘-¤¨E�-Ó2Ô3ð 	ˆuøô *ò 4Ø(¬D°«GÑ3Ð3Õ3ûð4úð
Ø	�	‰	”*œU¤1 a¡4›[¬Ó+Ô,ð 	ˆuøô ò /Ø#¤t¨A£wÑ.Ð.Õ.ûð/ús0   Â3C Ã	C/ÃC*Ã*C/Ã3/D$ Ä$	EÄ-EÅEN)zÚsympyr   Úsympy.codegenr   Úsympy.codegen.astr   Úsympy.codegen.cfunctionsr   r   Úsympy.codegen.scipy_nodesr   Úsympy.codegen.matrix_nodesr	   Ú
sympy.corer
   r   r   r   r   r   r   r   r   r   r‰   r   Úsympy.core.numbersr   Úsympy.core.singletonr   Úsympy.functionsr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Ú(sympy.functions.elementary.trigonometricr/   Úsympy.logicr0   r1   Úsympy.matricesr2   r3   r4   Úsympy.printing.codeprinterr5   Úsympy.printing.pycoder6   r7   r8   r9   r:   Úsympy.printing.tensorflowr;   Úsympy.printing.numpyr<   r=   Úsympy.testing.pytestr>   r?   Úsympy.tensorr@   rA   Ú0sympy.tensor.array.expressions.array_expressionsrB   rC   rD   rE   rF   Úsympy.externalrG   rÝ   rH   rW   rX   ró   rI   r\   rf   ri   rr   r”   r    rª   r±   rµ   r¹   r½   r¿   rÍ   rÐ   rÒ   r×   râ   rö   rü   r  r  r
  r  r  r+  rc   r]   r[   ú<module>rA     s-  ðÝ Ý $Ý "ß 1Ý +Ý 2ß M× M× MÝ *Ý !Ý "÷ v÷  v÷  v÷  v÷  v÷  vó  vÝ :ß ß ?Ñ ?Ý E÷õ õ 8ß ;ß -ß )ß ~Õ ~Ý (Ý <ñ �'Ó
�€€1€aÙ�Ó€ò*3òZJò3ò.:ò2?òjò&*ò"4ò$òBò6Pô(˜$ô ò4ò"ò1ò/ò9ò(Cò,;ò.7ò(3ò$3ò&?òDó4 r]   