U
    ZÊ¹jyH  ã                   @   s¶  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mZmZmZmZ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*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dlm;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR d dlSmTZTmUZU d dlVmWZW d dlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_ d dl`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZl d d	lmmnZnmoZompZpmqZqmrZr d d
lsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚ d dlƒm„Z„m„Z… edƒ\Z†Z‡Zˆdd„ Z‰dd„ ZŠdd„ Z‹dd„ ZŒdd„ Z�dd„ ZŽdd„ Z�dd„ Z�dd„ Z‘dd „ Z’d!d"„ Z“d#d$„ Z”d%d&„ Z•d'd(„ Z–d)d*„ Z—d+d,„ Z˜d-d.„ Z™d/d0„ ZšeUd1d2„ ƒZ›d3d4„ Zœd5d6„ Z�d7d8„ Zžd9d:„ ZŸd;d<„ Z d=d>„ Z¡d?d@„ Z¢dAdB„ Z£dCdD„ Z¤dEdF„ Z¥dGdH„ Z¦dIdJ„ Z§dKdL„ Z¨dMdN„ Z©dOdP„ ZªdQdR„ Z«dSdT„ Z¬dUdV„ Z­dWdX„ Z®dYdZ„ Z¯d[d\„ Z°d]d^„ Z±d_d`„ Z²dadb„ Z³dcS )dé    )ÚSÚpiÚooÚsymbolsÚFunctionÚRationalÚIntegerÚTupleÚSymbolÚ
EulerGammaÚGoldenRatioÚCatalanÚLambdaÚMulÚPowÚModÚEqÚNeÚLeÚLtÚGtÚGe)ÚMatrixSolve)!ÚargÚatan2Ú	bernoulliÚbetaÚceilingÚ
chebyshevuÚ
chebyshevtÚ	conjugateÚ
DiracDeltaÚexpÚexpintÚ	factorialÚfloorÚharmonicÚ	HeavisideÚimÚlaguerreÚLambertWÚlogÚMaxÚMinÚ	PiecewiseÚpolylogÚreÚRisingFactorialÚsignÚsincÚsqrtÚzetaÚbinomialÚlegendreÚdirichlet_etaÚ
riemann_xi)ÚsinÚcosÚtanÚcotÚsecÚcscÚasinÚacosÚacotÚatanÚasecÚacscÚsinhÚcoshÚtanhÚcothÚcschÚsechÚasinhÚacoshÚatanhÚacothÚasechÚacsch)ÚraisesÚXFAIL)Úimplemented_function)ÚeyeÚMatrixÚMatrixSymbolÚIdentityÚHadamardProductÚSparseMatrixÚHadamardPower)ÚjnÚynÚbesseljÚbesselyÚbesseliÚbesselkÚhankel1Úhankel2ÚairyaiÚairybiÚairyaiprimeÚairybiprime)ÚgammaÚ
lowergammaÚ
uppergammaÚloggammaÚ	polygamma)ÚChiÚCiÚerfÚerfcÚerfiÚerfcinvÚerfinvÚfresnelcÚfresnelsÚliÚShiÚSiÚLiÚerf2ÚEi)Úoctave_coder|   zx,y,zc                   C   s,   t tdƒƒdkst‚t tdƒƒdks(t‚d S )NéC   Z67éÿÿÿÿz-1)Úmcoder   ÚAssertionError© r�   r�   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/printing/tests/test_octave.pyÚtest_Integer"   s    rƒ   c                   C   s�   t tddƒƒdkst‚t tddƒƒdks,t‚t tddƒƒdksBt‚t td	dƒƒdksXt‚t ttddƒ ƒd
ksrt‚t tddƒt ƒdksŒt‚d S )Né   é   z3/7é   é	   Ú2iùÿÿÿz-3/7éýÿÿÿzx + 3/7z3*x/7)r   r   r€   Úxr�   r�   r�   r‚   Útest_Rational'   s    r‹   c                   C   sˆ   t tttƒƒdkst‚t tttƒƒdks,t‚t tttƒƒdksBt‚t tttƒƒdksXt‚t tttƒƒdksnt‚t t	ttƒƒdks„t‚d S )Nzx == yzx != yzx <= yzx < yzx > yzx >= y)
r   r   rŠ   Úyr€   r   r   r   r   r   r�   r�   r�   r‚   Útest_Relational0   s    r�   c                   C   s  t ttƒttƒ ƒdkst‚t ttƒƒdks0t‚t ttƒƒdksDt‚t ttƒƒdksXt‚t ttƒƒdkslt‚t t	tƒƒdks€t‚t t
ttƒƒdks–t‚t tttƒƒdks¬t‚t tttƒƒd	ksÂt‚t ttƒƒd
ksÖt‚t ttƒƒdksêt‚t tttƒƒdk�st‚t tttƒƒdk�st‚d S )Nzsin(x).^cos(x)zsign(x)zexp(x)zlog(x)zfactorial(x)zfloor(x)zatan2(y, x)z
beta(x, y)zpolylog(x, y)zharmonic(x)zbernoulli(x)zbernoulli(x, y)zlegendre(x, y))r   r:   rŠ   r;   r€   r2   r"   r+   r$   r%   r   rŒ   r   r/   r&   r   r7   r�   r�   r�   r‚   Útest_Function9   s    rŽ   c                   C   sø  t ttƒƒdkst‚t ttƒƒdks(t‚t ttƒƒdks<t‚t ttƒƒdksPt‚t ttƒƒdksdt‚t ttƒƒdksxt‚t t	t
tƒƒdksŽt‚t tt
tƒƒdks¤t‚t ttt
ƒƒd	ksºt‚t ttƒƒd
ksÎt‚t ttƒƒdksât‚t ttƒƒdksöt‚t ttƒƒdk�st‚t ttƒƒdk�s"t‚t ttƒƒdk�s8t‚t ttt
ƒƒdk�sPt‚t ttt
ƒƒdk�sht‚t ttƒƒdk�s~t‚t ttdƒƒdk�s–t‚t ttƒƒdk�s¬t‚t ttt
ƒƒdk�sÄt‚t ttt
ƒƒdk�sÜt‚t ttt
ƒƒdk�sôt‚d S )Nzabs(x)zceil(x)zangle(x)zimag(x)zreal(x)zconj(x)zchebyshevT(y, x)zchebyshevU(y, x)zlaguerreL(x, y)z
coshint(x)z
sinhint(x)z	cosint(x)z	sinint(x)z	logint(x)z
gammaln(x)z	psi(x, y)zpochhammer(x, y)zdirac(x)r„   zdirac(3, x)zheaviside(x, 1/2)zheaviside(x, y)zbincoeff(x, y)z	mod(x, y))r   ÚabsrŠ   r€   r   r   r(   r0   r    r   rŒ   r   r)   rm   rw   rn   rx   rv   rk   rl   r1   r!   r'   r6   r   r�   r�   r�   r‚   Útest_Function_change_nameI   s.    r�   c                   C   sT   t tttƒtttƒ ƒdks t‚t ttttƒƒdks8t‚t ttttƒƒdksPt‚d S )Nzmax(x, y) + min(x, y)zmax(x, max(y, z))zmin(x, min(y, z)))r   r,   rŠ   rŒ   r-   r€   Úzr�   r�   r�   r‚   Útest_minmaxc   s     r’   c               
   C   sÂ   t td ƒdkst‚t ttd  ƒdks,t‚t ttddƒ ƒdksFt‚tdttdt ƒƒ} t d| tƒd ttt    td t  ƒd	ksŽt‚t td
tttttdd�ddd�dd�ƒdks¾t‚d S )Nr„   zx.^3z	x.^(y.^3)é   zx.^(2/3)Úgé   g      @z"(3.5*2*x).^(-x + y.^x)./(x.^2 + y)éþÿÿÿF)Úevaluater~   z-2*x./(y.*y))	r   rŠ   r€   rŒ   r   rT   r   r   r   )r”   r�   r�   r‚   Útest_Powi   s    *ÿÿÿr˜   c                   C   sR   t tt ƒdkst‚t tt ƒdks(t‚t tt ƒdks<t‚t t ƒdksNt‚d S )Núx.*yzx + yzx - yz-x)r   rŠ   rŒ   r€   r�   r�   r�   r‚   Útest_basic_opsu   s    rš   c                   C   s  t dt ƒdkst‚t td ƒt td ƒ  kr8dks>n t‚t dttƒ ƒdksVt‚t ttj  ƒt td ƒ  kr~dks„n t‚t ttƒƒdks˜t‚t ttj ƒt td ƒ  kr¾dksÄn t‚t dt ƒd	ksØt‚t td ƒt td ƒ  krþd	k�sn t‚t td ƒd
k�st‚d S )Nr•   z1./xr~   g      ð¿z
1./sqrt(x)g      à¿zsqrt(x)g      à?z1/piz
1/sqrt(pi))r   rŠ   r€   r4   r   ÚHalfr   r�   r�   r�   r‚   Útest_1_over_x_and_sqrt|   s    *.,,rœ   c                   C   sh  t dt ƒdkst‚t tt ƒdks(t‚t dt ƒdks<t‚t tt ƒdksPt‚t td ƒdksdt‚t tt ƒdksxt‚t tt ƒdksŒt‚t dt t ƒd	ks¤t‚t dt t t ƒd
ksÀt‚t tt ƒdksÔt‚t dt t ƒdksìt‚t tt t ƒdk�st‚t tt t ƒdk�s t‚t dt t ƒdk�s:t‚t dt t t t ƒdk�s\t‚t dt t ƒdk�svt‚t tdƒd ƒdk�s�t‚t tdƒd t ƒdk�s®t‚t tt t ƒdk�sÈt‚t tt t ƒdk�sât‚t tt tt  ƒdk�s t‚t tt t ƒdt d¡ k�s$t‚t td t ƒdk�s>t‚t tdƒd t t t ƒdk�sdt‚d S )Nr„   z3*xzpi*xz3./xzpi./xzx/3zx/pir™   z3*x.*yz	3*pi*x.*yzx./yz3*x./yzx.*y./zzx.*z./yr•   z	1./(x.*y)r“   z2*pi*x./(y.*z)z3*pi./xé   z3/5z3*x/5z	x./(y.*z)z
(x + y)./zz(x + y)./(x + z)z
(x + y)/%sé   zx/(3*pi)z3*x.*y/(5*pi))	r   rŠ   r€   r   rŒ   r‘   r   r   Úevalfr�   r�   r�   r‚   Útest_mix_number_mult_symbolsŠ   s0    "$r    c                   C   sˆ   t td ƒdkst‚t td ƒdks(t‚t ttd  ƒdks@t‚t tt ƒdksTt‚t ttt  ƒdkslt‚t tt t ƒdks„t‚d S )	Nr„   zpi^3r“   zx.^2z	x.^(pi^3)zx.^yz	x.^(y.^z)z	(x.^y).^z)r   r   r€   rŠ   rŒ   r‘   r�   r�   r�   r‚   Útest_mix_number_pow_symbols¥   s    r¡   c                  C   s|   t dƒ} t| ƒdkst‚td|  ƒdks,t‚tt dƒd |  ƒdksHt‚tdd|   ƒd	ks`t‚ttdƒ|  ƒd
ksxt‚d S )NÚIZ1ir�   Z5ir„   r“   z3*1i/2é   z3 + 4iz
sqrt(3)*1i)r   r   r€   r4   )r¢   r�   r�   r‚   Ú	test_imag®   s    r¤   c                   C   s€   t tƒdkst‚t tƒdks t‚t t ƒdks2t‚t tjƒdksDt‚t tjƒdksVt‚t tjƒdksht‚t tdƒƒdks|t‚d S )Nr   Úinfz-infÚNaNzexp(1)r•   )	r   r   r€   r   r   ÚNegativeInfinityr¦   ZExp1r"   r�   r�   r�   r‚   Útest_constants·   s    r¨   c                   C   sT   t dt ƒdkst‚t dt ƒdt d¡ ks2t‚t dt ƒdt d¡ ksPt‚d S )Nr“   z2*(1+sqrt(5))/2z2*%srž   )r   r   r€   r   rŸ   r   r�   r�   r�   r‚   Útest_constants_otherÁ   s    r©   c                   C   sž   t tt@ ƒdkst‚t ttB ƒdks(t‚t t ƒdks:t‚t tt@ t@ ƒdksRt‚t ttB tB ƒdksjt‚t tt@ tB ƒdks‚t‚t ttB t@ ƒdksšt‚d S )Nzx & yzx | yz~xz	x & y & zz	x | y | zz	z | x & yzz & (x | y))r   rŠ   rŒ   r€   r‘   r�   r�   r�   r‚   Útest_booleanÇ   s    rª   c                  C   sZ   ddl m}  t| ttƒƒdks"t‚t| ttd ƒƒdks<t‚t| dt tƒƒdksVt‚d S )Nr   ©ÚKroneckerDeltazdouble(x == y)r•   zdouble(x == (y + 1))r“   zdouble((2.^x) == y))Úsympy.functionsr¬   r   rŠ   rŒ   r€   r«   r�   r�   r‚   Útest_KroneckerDeltaÑ   s    r®   c                  C   sð   t tdddgƒƒdkst‚tdttd ƒttƒgddtgdtdƒttƒggƒ} d}t | ƒ|ksbt‚t | d d …df ƒdks~t‚t | dd d …f ƒdksšt‚t tddg ƒƒd	ks²t‚t tdd
g ƒƒdksÊt‚t tttt	 t	 ggƒƒdksìt‚d S )Nr•   é
   Ú10r“   r   z-[1 sin(x/2) abs(x); 0 1 pi; 0 exp(1) ceil(x)]z	[1; 0; 0]z[1 sin(x/2) abs(x)]z[]r„   zzeros(0, 3)z[x x - y -y])
r   rV   r€   r:   rŠ   r�   r   r"   r   rŒ   ©ÚAÚexpectedr�   r�   r‚   Útest_MatricesØ   s    þr´   c                  C   sJ   t dtdt ƒdt t d ggƒ} t| ƒdks4t‚t| jƒdksFt‚d S )Nr•   r“   r„   r�   z[1 sin(2./x) 3*pi./(5*x)]z[1; sin(2./x); 3*pi./(5*x)])rV   r:   rŠ   r   r   r€   ÚT©r²   r�   r�   r‚   Útest_vector_entries_hadamardé   s    $r·   c                  C   sH   t dtdt ƒdt t d gddtt ggƒ} d}t| ƒ|ksDt‚d S )Nr•   r“   r„   r�   z.[1 sin(2/x) 3*pi/(5*x);
1        2        x*y])rV   r:   rŠ   r   rŒ   r   r€   r±   r�   r�   r‚   Ú"test_Matrices_entries_not_hadamardð   s    0r¸   c                  C   sâ   t ddd�} td| | ƒ}td| | ƒ}t|| ƒdks8t‚t|| ƒdksLt‚td| | ƒd	ksdt‚t|d | ƒd
ks|t‚t||dt| ƒ   ƒdksœt‚t|td  ƒdks´t‚t|d ƒdksÈt‚t|tj ƒdksÞt‚d S )NÚnT©Úintegerr²   ÚBzA*BzB*Ar“   z2*A*Bz2*B*Ar„   zA*(3*eye(n) + B)zA^(x.^2)zA^3zA^(1/2))r
   rW   r   r€   rX   rŠ   r   r›   )r¹   r²   r¼   r�   r�   r‚   Útest_MatrixSymbolû   s     r½   c                  C   s>   t ddd�} td| | ƒ}td| dƒ}tt||ƒƒdks:t‚d S )Nr¹   Trº   r²   rŠ   r•   zA \ x)r
   rW   r   r   r€   )r¹   r²   rŠ   r�   r�   r‚   Útest_MatrixSolve	  s    r¾   c                   C   s   t dtdƒ ƒdkst‚d S )Né   r„   z6*eye(3))r   rX   r€   r�   r�   r�   r‚   Útest_special_matrices  s    rÀ   c                   C   sÂ   t dddddddggdd	d
gdgƒdks,t‚t dƒdks<t‚t dgƒdksNt‚t dƒdks^t‚t tdddgŽ ƒdksxt‚t dtt dtd ffƒdksšt‚t dtdƒtddg ƒg fƒdks¾t‚d S )Nr•   r“   r„   r£   r�   r¿   r…   é   r‡   r¯   é   z){1, 2, 3, {4, 5, {6, 7}}, 8, {9, 10}, 11})r•   r“   )r„   r£   z{1, 2, {3, 4}}z{1})r•   z	{1, 2, 3}z{1, x.*y, {3, x.^2}}r   z"{1, [1 0 0; 0 1 0; 0 0 1], [], {}})r   r€   r	   rŠ   rŒ   rU   rV   r�   r�   r�   r‚   Útest_containers  s    "ÿ"rÃ   c                  C   s4   t tt t ddd�} dt d¡ }| |ks0t‚d S )NÚmeF©Ú	assign_toÚinlinez#Catalan = %s;
me = (x + y)/Catalan;rž   )r   rŠ   rŒ   r   rŸ   r€   )Úsourcer³   r�   r�   r‚   Útest_octave_noninline  s
    ýrÉ   c                     s  t ttdk ftd dfƒ‰ tˆ ƒdks*t‚tˆ dd�dks>t‚tˆ ddd	�d
ksTt‚t td tdk ftd tdk ftd tdk ftd dfƒ‰ d} tˆ ƒ| ks¢t‚tˆ dd�d|  d ks¾t‚tˆ ddd	�dksÔt‚t ttdk ftd tdkfttƒtdkfƒ‰ tt‡ fdd„ƒ d S )Nr•   r“   Tz#((x < 1).*(x) + (~(x < 1)).*(x.^2))Úr©rÆ   z(r = ((x < 1).*(x) + (~(x < 1)).*(x.^2));FrÅ   z(if (x < 1)
  r = x;
else
  r = x.^2;
endr„   r£   r�   zp((x < 1).*(x.^2) + (~(x < 1)).*( ...
(x < 2).*(x.^3) + (~(x < 2)).*( ...
(x < 3).*(x.^4) + (~(x < 3)).*(x.^5))))zr = ú;zaif (x < 1)
  r = x.^2;
elseif (x < 2)
  r = x.^3;
elseif (x < 3)
  r = x.^4;
else
  r = x.^5;
endr   c                      s   t ˆ ƒS )N©r   r�   ©Úexprr�   r‚   Ú<lambda>E  ó    z'test_octave_piecewise.<locals>.<lambda>)r.   rŠ   r   r€   r:   rR   Ú
ValueError)r³   r�   rÎ   r‚   Útest_octave_piecewise(  s"    
ÿÿ:ÿ,rÓ   c                  C   sr   t ttdk ftd dfƒ} td|  ƒdks.t‚t| t ƒdksBt‚t| tt  ƒdksZt‚t| d ƒdksnt‚d S )	Nr•   r“   Tz%2*((x < 1).*(x) + (~(x < 1)).*(x.^2))z&((x < 1).*(x) + (~(x < 1)).*(x.^2))./xz+((x < 1).*(x) + (~(x < 1)).*(x.^2))./(x.*y)r„   z%((x < 1).*(x) + (~(x < 1)).*(x.^2))/3)r.   rŠ   r   r€   rŒ   )Úpwr�   r�   r‚   Ú!test_octave_piecewise_times_constH  s
    rÕ   c                  C   sP   t dddggƒ} t| dd�dks$t‚t ddgddggƒ} t| dd�d	ksLt‚d S )
Nr•   r“   r„   ÚarË   za = [1 2 3];r£   r²   zA = [1 2; 3 4];)rV   r   r€   r¶   r�   r�   r‚   Útest_octave_matrix_assign_toP  s    r×   c                     sf   t dddggƒ‰ tdddƒ} tdddƒ‰tˆ | d�dks<t‚tt‡ fdd	„ƒ tt‡ ‡fd
d	„ƒ d S )Nr•   r“   r„   r¼   ÚCrË   zB = [1 2 3];c                      s   t ˆ td�S ©NrË   )r   rŠ   r�   r¶   r�   r‚   rÐ   ]  rÑ   z3test_octave_matrix_assign_to_more.<locals>.<lambda>c                      s   t ˆ ˆd�S rÙ   rÍ   r�   ©r²   rØ   r�   r‚   rÐ   ^  rÑ   ©rV   rW   r   r€   rR   rÒ   ©r¼   r�   rÚ   r‚   Ú!test_octave_matrix_assign_to_moreW  s    rÝ   c                     sP   t dggƒ‰ tdddƒ} tdddƒ‰tˆ | d�dks8t‚tt‡ ‡fdd	„ƒ d S )
Nr„   r¼   r•   rØ   r“   rË   zB = 3;c                      s   t ˆ ˆd�S rÙ   rÍ   r�   rÚ   r�   r‚   rÐ   h  rÑ   z(test_octave_matrix_1x1.<locals>.<lambda>rÛ   rÜ   r�   rÚ   r‚   Útest_octave_matrix_1x1a  s
    rÞ   c                  C   sœ   t tdtt ggƒ} t| d d | d  | d  ƒdks<t‚tdddƒ} t| ƒdksXt‚t| d d t| d ƒ | d  ƒd	ks„t‚tt| ƒƒd
ks˜t‚d S )Nr“   ©r   r   )r   r•   )r   r“   zx.^2 + x.*y + 2ZAAr•   r„   z&sin(AA(1, 2)) + AA(1, 1).^2 + AA(1, 3)zAA(1, 1) + AA(1, 2) + AA(1, 3))rV   rŠ   rŒ   r   r€   rW   r:   Úsumr¶   r�   r�   r‚   Útest_octave_matrix_elementsk  s    ("ÿrá   c                   C   sH   t dƒdkst‚t tjƒdks"t‚t dƒdks2t‚t tjƒdksDt‚d S )NTÚtrueFÚfalse)r   r€   r   râ   rã   r�   r�   r�   r‚   Útest_octave_booleanu  s    rä   c               	   C   sH   t tƒ� ttjƒ W 5 Q R X tdƒ} t| tƒ t¡dd�dksDt‚d S )NÚfF©Ústrictz;% Not supported in Octave:
% Derivative
Derivative(f(x), x))	rR   ÚNotImplementedErrorr   r   ZComplexInfinityr   rŠ   Údiffr€   ©rå   r�   r�   r‚   Útest_octave_not_supported|  s    
ÿrë   c               	   C   s4   ddl m}  ttƒ� t| tttƒƒ W 5 Q R X d S )Nr   ©Úassoc_laguerre)Z#sympy.functions.special.polynomialsrí   rR   rè   r   rŠ   rŒ   r‘   rì   r�   r�   r‚   Ú*test_octave_not_supported_not_on_whitelist‡  s    
rî   c                	   C   sV   t tdtƒƒdkst‚ttƒ� t tdtƒƒ W 5 Q R X t tttƒdd�dksRt‚d S )Nr•   z	expint(x)r“   Fræ   z0% Not supported in Octave:
% expint
expint(y, x))r   r#   rŠ   r€   rR   rè   rŒ   r�   r�   r�   r‚   Útest_octave_expint�  s    
ÿrï   c                  C   sD   t dƒ} t dƒ}t| tdk f|tdkfdƒ}t|dd�dks@t‚d S )	NZendlessZ	elsewherer   r•   )r•   TF)rÇ   z=if (x < 0)
  endless
elseif (x <= 1)
  elsewhere
else
  1
end)r   r.   rŠ   r   r€   )Út1Út2rÔ   r�   r�   r‚   Ú%test_trick_indent_with_end_else_words˜  s    
ÿrò   c                  C   sþ   t dddƒ} t dddƒ}t dddƒ}t dddƒ}t| |ƒ}tdƒ}t|ƒdksRt‚t|| ƒd	ksft‚t|| | ƒd
ks~t‚t||  ƒdks’t‚t|t t ƒdksªt‚tt| |ƒƒdksÀt‚tt| d| ƒƒdksÚt‚tt| |j d| ƒƒdksút‚d S )Nr²   r„   r¼   Úvr•   Úhr¹   zA.*Bz(A.*B)*vz
h*(A.*B)*vz(A.*B)*Az(x.*y)*(A.*B)zA.**nzA.**(n + 1)z(A*B.T).**(n + 1))	rW   rY   r
   r   r€   rŠ   rŒ   r[   rµ   )r²   r¼   ró   rô   rØ   r¹   r�   r�   r‚   Útest_hadamard§  s    
rõ   c                  C   sL   t ddi ƒ} d| d< d| d< d| d< d	| d
< tt | d< t| ƒdksHt‚d S )Nr�   r¿   r¯   )r“   r“   é   )r•   r“   é   )r•   r„   é   )r   r„   )r„   r   z:sparse([4 2 3 1 2], [1 3 3 4 4], [x.*y 20 10 30 22], 5, 6))rZ   rŠ   rŒ   r   r€   )ÚMr�   r�   r‚   Útest_sparse»  s    ÿrú   c                   C   sL   t ttƒƒdkst‚t ttd ƒƒdks,t‚t tttd  ƒƒdksHt‚d S )Nz
sinc(x/pi)r„   zsinc((x + 3)/pi)zsinc(x + 3))r   r3   rŠ   r€   r   r�   r�   r�   r‚   Ú	test_sincÇ  s    rû   c                  C   sX   t ttttttttt	t
tttttttttttttfD ]} t| tƒ| jd kƒs4t‚q4d S )Nú(x))r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r|   rŠ   Ú__name__r€   rê   r�   r�   r‚   Útest_trigfunÍ  s              þrþ   c                  C   sÔ  t dƒ} ttttfD ] }t|| tƒƒ|jd kst‚qt	t
ttttttfD ]}t|tƒƒ|jd ksJt‚qJtt| tƒƒdks€t‚tt| tƒƒdks–t‚tttƒƒdksªt‚tttƒƒdks¾t‚tttƒƒdksÒt‚tttƒƒd	ksæt‚tt| tƒƒd
ksüt‚tt| tƒƒdk�st‚ttt| tƒ ƒdk�s0t‚tt| tƒƒdk�sHt‚tt| tƒƒdk�s`t‚tttƒƒdk�svt‚ttt| ƒƒdk�sŽt‚tttƒƒdk�s¤t‚tttƒƒdk�sºt‚tttƒƒdk�sÐt‚d S )Nr¹   z(n, x)rü   zbesselh(n, 1, x)zbesselh(n, 2, x)z
airy(0, x)z
airy(1, x)z
airy(2, x)z
airy(3, x)z#(gammainc(x, n, 'upper').*gamma(n))z(gammainc(x, n).*gamma(n))zz.^(gammainc(x, n).*gamma(n))z2sqrt(2)*sqrt(pi)*sqrt(1./x).*besselj(n + 1/2, x)/2z2sqrt(2)*sqrt(pi)*sqrt(1./x).*bessely(n + 1/2, x)/2zlambertw(x)zlambertw(n, x)z(logint(exp(x)))zA(((x == 1).*(log(2)) + (~(x == 1)).*((1 - 2.^(1 - x)).*zeta(x))))z/(pi.^(-x/2).*x.*(x - 1).*gamma(x/2).*zeta(x)/2)) r
   r^   r_   r`   ra   r|   rŠ   rý   r€   rp   rq   ro   rs   rr   rt   ru   rh   rb   rc   rd   rf   re   rg   rj   ri   r‘   r\   r]   r*   r{   r8   r9   )r¹   rå   r�   r�   r‚   Útest_specfunÔ  s*    rÿ   c                  C   sx   t dddƒ} t dddƒ}t dddƒ}t| d ƒdks8t‚td| d  ƒdksPt‚|d  || | ¡}t|ƒd	kstt‚d S )
Nr²   r•   r„   r¼   rØ   rß   zA(1, 1)z	3*A(1, 1)z(A - B)(1, 1))rW   r   r€   Úsubs)r²   r¼   rØ   ÚFr�   r�   r‚   Útest_MatrixElement_printingî  s    r  c                	   C   s:   t ttƒƒdkst‚ttƒ� t tttƒƒ W 5 Q R X d S )Nzzeta(x))r|   r5   rŠ   r€   rR   rè   rŒ   r�   r�   r�   r‚   Útest_zeta_printing_issue_14820û  s    
r  c                   C   s.   t ttƒƒdkst‚t tttƒƒdks*t‚d S )Nz(logint(x) - logint(2))z(-erf(x) + erf(y)))r|   ry   rŠ   r€   rz   rŒ   r�   r�   r�   r‚   Útest_automatic_rewrite  s    r  N)´Z
sympy.corer   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.codegen.matrix_nodesr   r­   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   Zsympy.testing.pytestrR   rS   Zsympy.utilities.lambdifyrT   Zsympy.matricesrU   rV   rW   rX   rY   rZ   r[   Zsympy.functions.special.besselr\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   Z'sympy.functions.special.gamma_functionsrh   ri   rj   rk   rl   Z'sympy.functions.special.error_functionsrm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   Zsympy.printing.octaver|   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×   rÝ   rÞ   rá   rä   rë   rî   rï   rò   rõ   rú   rû   rþ   rÿ   r  r  r  r�   r�   r�   r‚   Ú<module>   sn   `Œh$8D				



	 


