
    gyH                     ~   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mZmZmZ d dlmZmZ  ed          \  ZZZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeUd             Zd  Zd! Zd" Zd# Zd$ Zd% Zd& Zd' Zd( Zd) Zd* Zd+ Zd, Zd- Zd. Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8S )9    )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                      t          t          d                    dk    sJ t          t          d                    dk    sJ d S )NC   67z-1)mcoder	        \/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/printing/tests/test_octave.pytest_Integerr   "   sF    %%%%%%%%%%r   c                     t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          d	d                    dk    sJ t          t          t          dd          z             d
k    sJ t          t          dd          t          z            dk    sJ d S )N      z3/7   	   2iz-3/7zx + 3/7z3*x/7)r   r   xr   r   r   test_Rationalr   '   s    !Q  E))))"a!!S((((!R!!V++++"b!!""e++++Xa^^#$$	1111!Q!""g------r   c                  "   t          t          t          t                              dk    sJ t          t	          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              dk    sJ 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   test_Relationalr   0   s    Aq??h&&&&Aq??h&&&&Aq??h&&&&Aq??g%%%%Aq??g%%%%Aq??h&&&&&&r   c                  b   t          t          t                    t          t                    z            dk    sJ t          t	          t                              dk    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              d	k    sJ t          t          t                              d
k    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              dk    sJ 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<   r3   r#   r,   r%   r&   r   r   r   r0   r'   r   r8   r   r   r   test_Functionr   9   s   Q3q66!""&66666a>>Y&&&&Q==H$$$$Q==H$$$$1.0000q??j((((q!....a,,,,A?2222!....1.00001a!!%66666!Q  $4444444r   c                  j   t          t          t                              dk    sJ t          t          t                              dk    sJ t          t	          t                              dk    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                              d	k    sJ t          t          t                              d
k    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t          t                              dk    sJ t          t!          t                              dk    sJ t          t#          t                              dk    sJ t          t%          t          t                              dk    sJ t          t'          t          t                              dk    sJ t          t)          t                              dk    sJ t          t)          t          d                    dk    sJ t          t+          t                              dk    sJ t          t+          t          t                              dk    sJ t          t-          t          t                              dk    sJ t          t/          t          t                              dk    sJ 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)   r1   r!   r    r   r   r*   rn   rx   ro   ry   rw   rl   rm   r2   r"   r(   r7   r   r   r   r   test_Function_change_namer   I   s   Q==H$$$$	))))Q==J&&&&A<<9$$$$A<<9$$$$1)++++Aq!!""&88888Aq!!""&88888!Q  $55555Q==L((((Q==\))))A<<;&&&&A<<K''''A<<K''''!,....1a!![0000A&&''+=====A:----Aq!!""m33331"555551a!!%66666!Q  $44444Q{******r   c                  b   t          t          t          t                    t	          t          t                    z             dk    sJ t          t          t          t          t
                              dk    sJ t          t	          t          t          t
                              dk    sJ 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.   zr   r   r   test_minmaxr   c   s    QSAYY&''+BBBBBQ1"55555Q1"5555555r   c                     t          t          dz            dk    sJ t          t          t          dz  z            dk    sJ t          t          t          dd          z            dk    sJ t	          dt          t          dt          z                      } t          d | t                    dz  t          t          t          z  z
  z  z  t          dz  t          z   z            d	k    sJ t          t          d
t          t          t          t          t          d          dd          d                    dk    sJ 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   rU   r   r   r   )r   s    r   test_Powr   i   s?   A;;&    QT{****HQNN"##z1111S&AaC..11AAAaDDHAqD))1a4!8455,- - - - RCAa 7 7 7eLLL9>@ @ @ A ADRS S S S S Sr   c                     t          t          t          z            dk    sJ t          t          t          z             dk    sJ t          t          t          z
            dk    sJ t          t                     dk    sJ d S )Nx.*yzx + yzx - yz-x)r   r   r   r   r   r   test_basic_opsr   u   sr    1::Q<<7""""Q<<7""""!99r   c                  X   t          dt          z            dk    sJ t          t          dz            t          t          dz            cxk    rdk    sn J t          dt          t                    z            dk    sJ t          t          t          j         z            t          t          dz            cxk    rdk    sn J t          t          t                              dk    sJ t          t          t          j        z            t          t          dz            cxk    rdk    sn J t          dt
          z            d	k    sJ t          t
          dz            t          t
          dz            cxk    rd	k    sn J t          t
          dz            d
k    sJ d S )Nr   z1./xr   g      z
1./sqrt(x)g      zsqrt(x)g      ?z1/piz
1/sqrt(pi))r   r   r5   r   Halfr   r   r   r   test_1_over_x_and_sqrtr   |   s    1::B<<5D>>3333V333333477|++++QVGag>>>>,>>>>>>a>>Y&&&&AFuQV}}9999	9999992;;&    R==E"d(OO5555v555555T??l******r   c                     t          dt          z            dk    sJ t          t          t          z            dk    sJ t          dt          z            dk    sJ t          t          t          z            dk    sJ t          t          dz            dk    sJ t          t          t          z            dk    sJ t          t          t          z            dk    sJ t          dt          z  t          z            d	k    sJ t          dt          z  t          z  t          z            d
k    sJ t          t          t          z            dk    sJ t          dt          z  t          z            dk    sJ t          t          t          z  t          z            dk    sJ t          t          t          z  t          z            dk    sJ t          dt          z  t          z            dk    sJ t          dt          z  t          z  t          z  t          z            dk    sJ t          dt          z  t          z            dk    sJ t          t          d          dz            dk    sJ t          t          d          dz  t          z            dk    sJ t          t          t          z  t          z            dk    sJ t          t          t          z   t          z            dk    sJ t          t          t          z   t          t          z   z            dk    sJ t          t          t          z   t          z            dt          j        d          z  k    sJ t          t          dz  t          z            dk    sJ t          t          d          dz  t          z  t          z  t          z            dk    sJ 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   evalfr   r   r   test_mix_number_mult_symbolsr      s   1::A;;&    1::A;;'!!!!1::2;;&    1::1Q<<8####2a??k))))1::1Q<<8####1Q<<9$$$$1Q<<9$$$$1Q<<;&&&&2a! 000002a==I%%%%1a==E!!!!1a??g%%%%1Q<<;&&&&!A#q>>\))))!A#!!33333!A#z!""lZ5Eb5I5I&IIIII1R==J&&&&1a!B?222222r   c                     t          t          dz            dk    sJ t          t          dz            dk    sJ t          t          t          dz  z            dk    sJ t          t          t          z            dk    sJ t          t          t          t          z  z            dk    sJ t          t          t          z  t          z            dk    sJ 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   test_mix_number_pow_symbolsr      s    Q<<6!!!!A;;&    RU++++A;;&    QT{****!Q${******r   c                  N   t          d          } t          |           dk    sJ t          d| z            dk    sJ t          t          d          dz  | z            dk    sJ t          dd| z  z             d	k    sJ t          t          d          | z            d
k    sJ d S )NI1ir   5ir   r   z3*1i/2   z3 + 4iz
sqrt(3)*1i)r   r   r5   )r   s    r   	test_imagr      s    	#A88t1::!A$$q&!((((1Q3<<8####a|++++++r   c                     t          t                    dk    sJ t          t                    dk    sJ t          t                     dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          d                    dk    sJ d S )Nr   infz-infNaNzexp(1)r   )r   r   r   r   NegativeInfinityr   Exp1r#   r   r   r   test_constantsr      s    9999"::#$$....<<5    ==H$$$$Q==H$$$$$$r   c                     t          dt          z            dk    sJ t          dt          z            dt          j        d          z  k    sJ t          dt          z            dt	          j        d          z  k    sJ d S )Nr   z2*(1+sqrt(5))/2z2*%sr   )r   r   r   r   r   r   r   r   test_constants_otherr      s    ;#444447vb(9(999999:&:+;B+?+?"???????r   c                     t          t          t          z            dk    sJ t          t          t          z            dk    sJ t          t                     dk    sJ t          t          t          z  t          z            dk    sJ t          t          t          z  t          z            dk    sJ t          t          t          z  t          z            dk    sJ t          t          t          z  t          z            dk    sJ 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   test_booleanr      s    Q<<7""""Q<<7""""!99Q{****Q{****!a%1,,,,!a%1......r   c                     ddl m}  t           | t          t                              dk    sJ t           | t          t          dz                       dk    sJ t           | dt          z  t                              dk    sJ 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   s    r   test_KroneckerDeltar      s    ......1%%&&*:::::1q5))**.DDDDD1a(())-BBBBBBBr   c            	         t          t          dddg                    dk    sJ t          dt          t          dz            t	          t                    gddt
          gdt          d          t          t                    gg          } d}t          |           |k    sJ t          | d d df                   dk    sJ t          | dd d f                   dk    sJ t          t          ddg                     d	k    sJ t          t          dd
g                     dk    sJ t          t          t          t          t          z
  t           gg                    dk    sJ 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   rW   r;   r   r   r   r#   r   r   Aexpecteds     r   test_Matricesr      sZ   1rd##$$,,,,C!HHc!ff%Ar
CFFGAJJ') 	* 	*A ?H88x111Q3==K''''1QQQ3==111111b!!""d****1b!!""m3333!QUQB())**n<<<<<<r   c                      t          dt          dt          z            dt          z  t          z  dz  gg          } t	          |           dk    sJ t	          | j                  dk    sJ d S )Nr   r   r   r   z[1 sin(2./x) 3*pi./(5*x)]z[1; sin(2./x); 3*pi./(5*x)])rW   r;   r   r   r   Tr   s    r   test_vector_entries_hadamardr      sg    C!HHad1fQh'())A8822222::6666666r   c                      t          dt          dt          z            dt          z  t          z  dz  gddt          t          z  gg          } d}t          |           |k    sJ d S )Nr   r   r   r   z.[1 sin(2/x) 3*pi/(5*x);
1        2        x*y])rW   r;   r   r   r   r   r   s     r   "test_Matrices_entries_not_hadamardr      sa    
 	C!HHad1fQh'!Q!566A)H88xr   c                  B   t          dd          } t          d| |           }t          d| |           }t          ||z            dk    sJ t          ||z            dk    sJ t          d|z  |z            d	k    sJ t          |dz  |z            d
k    sJ t          ||dt          |           z  z   z            dk    sJ t          |t          dz  z            dk    sJ t          |dz            dk    sJ t          |t
          j        z            dk    sJ 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   rX   r   rY   r   r   r   )r   r   r   s      r   test_MatrixSymbolr      s9   sD!!!AS!QAS!QA1::1::1Q<<7""""1Q<<7""""A(1++%&''+=====QTz))))A;;%AFy((((((r   c                      t          dd          } t          d| |           }t          d| d          }t          t          ||                    dk    sJ d S )Nr   Tr   r   r   r   zA \ x)r   rX   r   r   )r   r   r   s      r   test_MatrixSolver   	  s_    sD!!!AS!QAS!QAQ""##x//////r   c                  P    t          dt          d          z            dk    sJ d S )N   r   z6*eye(3))r   rY   r   r   r   test_special_matricesr     s+    8A;;:------r   c            	         t          dddddddggdd	d
gdg          dk    sJ t          d          dk    sJ t          dg          dk    sJ t          d          dk    sJ t          t          g d           dk    sJ t          dt          t          z  dt          dz  ff          dk    sJ t          dt	          d          t          ddg           g f          dk    sJ 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   r   r   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   rV   rW   r   r   r   test_containersr     s   !QAq1a&>1q"gr:;;34 4 4 4  $44444!::;;%			"##{2222!QqS1ad)$%%)?????!SVVVAq"--r2337[[[[[[[r   c                      t          t          t          z   t          z  dd          } dt          j        d          z  }| |k    sJ d S )NmeF	assign_toinlinez#Catalan = %s;
me = (x + y)/Catalan;r   )r   r   r   r   r   )sourcer   s     r   test_octave_noninliner     sP    AaC=D???F	 bH Xr   c                     t          t          t          dk     ft          dz  df          t                    dk    sJ t          d          dk    sJ t          dd	          d
k    sJ t          t          dz  t          dk     ft          dz  t          dk     ft          dz  t          dk     ft          dz  df          d} t                    | k    sJ t          d          d| z   dz   k    sJ t          dd	          dk    sJ t          t          t          dk     ft          dz  t          dk    ft          t                    t          dk    f          t	          t
          f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                  "    t                     S )Nr   )exprs   r   <lambda>z'test_octave_piecewise.<locals>.<lambda>E  s    uT{{ r   )r/   r   r   r;   rS   
ValueError)r   r   s    @r   test_octave_piecewiser   (  s   aQZ!Q$..D;;?????%%%24 4 4 4U333	    adAE]QT1q5MAqD!a%=1a4,OOD:H ;;(""""%%%():S)@@@@@U333		 	 	 	 aQZ!Q$AQQ@@D
:****+++++r   c                  >   t          t          t          dk     ft          dz  df          } t          d| z            dk    sJ t          | t          z            dk    sJ t          | t          t          z  z            dk    sJ t          | dz            dk    sJ 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   )pws    r   !test_octave_piecewise_times_constr   H  s    	Aq1u:1d|	,	,B2;;AAAAAA;;BBBBBQqS??KKKKKA;;AAAAAAAr   c                      t          g dg          } t          | d          dk    sJ t          ddgddgg          } t          | d	          d
k    sJ d S )Nr   ar   za = [1 2 3];r   r   r   r   r   zA = [1 2; 3 4];)rW   r   r   s    r   test_octave_matrix_assign_tor   P  sr    			{Ac"""n4444AA  Ac"""&7777777r   c                     t          g dg          t          ddd          } t          ddd          t          |           dk    sJ t          t          fd	           t          t          fd
           d S )Nr   r   r   r   Cr   r   zB = [1 2 3];c                  0    t           t                    S Nr   )r   r   r   s   r   r   z3test_octave_matrix_assign_to_more.<locals>.<lambda>]  s    uQ!444 r   c                  &    t                     S r   r   r   r   s   r   r   z3test_octave_matrix_assign_to_more.<locals>.<lambda>^      uQ!444 r   rW   rX   r   rS   r   r   r   r   s    @@r   !test_octave_matrix_assign_to_morer  W  s    			{AS!QAS!QAa   N2222
:4444555
:4444455555r   c                      t          dgg          t          ddd          } t          ddd          t          |           dk    sJ t          t          fd           d S )	Nr   r   r   r   r   r   zB = 3;c                  &    t                     S r   r   r   s   r   r   z(test_octave_matrix_1x1.<locals>.<lambda>h  r   r   r   r   s    @@r   test_octave_matrix_1x1r  a  sx    uAS!QAS!QAa   H,,,, :4444455555r   c                     t          t          dt          t          z  gg          } t          | d         dz  | d         z   | d         z             dk    sJ t	          ddd          } t          |           dk    sJ t          | d         dz  t          | d                   z   | d         z             d	k    sJ t          t          |                     d
k    sJ d S )Nr   r   r   )r   r   )r   r   zx.^2 + x.*y + 2AAr   r   z&sin(AA(1, 2)) + AA(1, 1).^2 + AA(1, 3)zAA(1, 1) + AA(1, 2) + AA(1, 3))rW   r   r   r   rX   r;   sumr   s    r   test_octave_matrix_elementsr	  k  s    Aqs}A4!ag%$/004EEEEET1a  A88t4!c!C&kk)AcF23334 4 4 4Q==<<<<<<<r   c                      t          d          dk    sJ t          t          j                  dk    sJ t          d          dk    sJ t          t          j                  dk    sJ d S )NTtrueFfalse)r   r   r  r  r   r   r   test_octave_booleanr  u  sh    ;;&    ==F""""<<7"""">>W$$$$$$r   c                  (   t          t                    5  t          t          j                   d d d            n# 1 swxY w Y   t          d          } t           | t                                        t                    d          dk    sJ d S )NfFstrictz;% Not supported in Octave:
% Derivative
Derivative(f(x), x))rS   NotImplementedErrorr   r   ComplexInfinityr   r   diffr  s    r   test_octave_not_supportedr  |  s    	#	$	$ ! !a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !A11e,,,	     s   ;??c                      ddl m}  t          t                    5  t	           | t
          t          t                               d d d            d S # 1 swxY w Y   d S )Nr   assoc_laguerre)#sympy.functions.special.polynomialsr  rS   r  r   r   r   r   r  s    r   *test_octave_not_supported_not_on_whitelistr    s    BBBBBB	#	$	$ ' 'nnQ1%%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   *AAAc                  P   t          t          dt                              dk    sJ t          t                    5  t          t          dt                               d d d            n# 1 swxY w Y   t          t          t
          t                    d          dk    sJ d S )Nr   z	expint(x)r   Fr  z0% Not supported in Octave:
% expint
expint(y, x))r   r$   r   rS   r  r   r   r   r   test_octave_expintr    s    1+----	#	$	$  fQll              1e,,,	     s   #A,,A03A0c                      t          d          } t          d          }t          | t          dk     f|t          dk    fd          }t          |d          dk    sJ d S )	Nendless	elsewherer   r   )r   TF)r   z=if (x < 0)
  endless
elseif (x <= 1)
  elsewhere
else
  1
end)r   r/   r   r   )t1t2r   s      r   %test_trick_indent_with_end_else_wordsr#    sl    	
9B	
;B	BA;Q!Vi	8	8BE"""	     r   c                     t          ddd          } t          ddd          }t          ddd          }t          ddd          }t          | |          }t          d          }t          |          dk    sJ t          ||z            d	k    sJ t          ||z  |z            d
k    sJ t          || z            dk    sJ t          |t          z  t
          z            dk    sJ t          t          | |                    dk    sJ t          t          | d|z                       dk    sJ t          t          | |j        z  d|z                       dk    sJ 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))rX   rZ   r   r   r   r   r\   r   )r   r   r%  r&  r   r   s         r   test_hadamardr'    sk   S!QAS!QAS!QAS!QA1AsA88v1::####1Q<<<''''1::####1Q<<?**** q!$$%%0000q!A#&&''=8888quac**++/BBBBBBBr   c                      t          ddi           } d| d<   d| d<   d| d<   d	| d
<   t          t          z  | d<   t          |           dk    sJ 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))r[   r   r   r   )Ms    r   test_sparser-    sn    Q2AAdGAdGAdGAdGcAdG88D     r   c                     t          t          t                              dk    sJ t          t          t          dz                       dk    sJ t          t          t          t          dz   z                      dk    sJ d S )Nz
sinc(x/pi)r   zsinc((x + 3)/pi)zsinc(x + 3))r   r4   r   r   r   r   r   	test_sincr/    sr    a>>\))))a!e!33333b!a%j!!""m333333r   c                     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 ]-} t1           | t2                    | j        dz   k              sJ .d S )N(x))r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   r}   r   __name__r  s    r   test_trigfunr3    s}    3S#sD$dD$D$dD%uU 7 7 11Q441:#556666667 7r   c                  v   t          d          } t          t          t          t          fD ].}t           || t                              |j        dz   k    sJ /t          t          t          t          t          t          t          t          fD ]-}t           |t                              |j        dz   k    sJ .t          t!          | t                              dk    sJ t          t#          | t                              dk    sJ t          t%          t                              dk    sJ t          t'          t                              dk    sJ t          t)          t                              dk    sJ t          t+          t                              d	k    sJ t          t-          | t                              d
k    sJ t          t/          | t                              dk    sJ t          t0          t/          | t                    z            dk    sJ t          t3          | t                              dk    sJ t          t5          | t                              dk    sJ t          t7          t                              dk    sJ t          t7          t          |                     dk    sJ t          t9          t                              dk    sJ t          t;          t                              dk    sJ t          t=          t                              dk    sJ d S )Nr   z(n, x)r1  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`   ra   rb   r}   r   r2  rq   rr   rp   rt   rs   ru   rv   ri   rc   rd   re   rg   rf   rh   rk   rj   r   r]   r^   r+   r|   r9   r:   )r   r  s     r   test_specfunr5    s   sAw1 = =11Q77##qzH'<<<<<<D#vw(EJ 7 711Q44  AJ$666666wq!}}%%);;;;;wq!}}%%);;;;;vayy!!\1111{1~~&&,6666vayy!!\1111{1~~&&,6666z!Q''((,SSSSSz!Q''((,HHHHHq*Q***++/NNNNNr!Qxx  $XXXXXr!Qxx  $XXXXXx{{##}4444x1~~&&*::::: r!uu!33333}Q''((,oooooz!}}%%)ZZZZZZZr   c                  F   t          ddd          } t          ddd          }t          ddd          }t          | d                   dk    sJ t          d| d         z            dk    sJ |d                             || |z
            }t          |          d	k    sJ d S )
Nr   r   r   r   r   r  zA(1, 1)z	3*A(1, 1)z(A - B)(1, 1))rX   r   subs)r   r   r   Fs       r   test_MatrixElement_printingr9    s    S!QAS!QAS!QA4>>Y&&&&QtW,,,,	$QAA88&&&&&&r   c                      t          t          t                              dk    sJ t          t                    5  t          t          t          t
                               d d d            d S # 1 swxY w Y   d S )Nzzeta(x))r}   r6   r   rS   r  r   r   r   r   test_zeta_printing_issue_14820r;    s    tAww9,,,,	#	$	$    DAJJ                                   s   (A11A58A5c                      t          t          t                              dk    sJ t          t          t          t                              dk    sJ d S )Nz(logint(x) - logint(2))z(-erf(x) + erf(y)))r}   rz   r   r{   r   r   r   r   test_automatic_rewriter=    sJ    r!uu!:::::tAqzz""&:::::::r   N)
sympy.corer   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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/   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   rR   sympy.testing.pytestrS   rT   sympy.utilities.lambdifyrU   sympy.matricesrV   rW   rX   rY   rZ   r[   r\   sympy.functions.special.besselr]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   'sympy.functions.special.gamma_functionsri   rj   rk   rl   rm   'sympy.functions.special.error_functionsrn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   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/  r3  r5  r9  r;  r=  r   r   r   <module>rG     s  G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G 3 2 2 2 2 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M / . . . . . . . 9 9 9 9 9 9J J J J J J J J J J J J J J J J J JN N N N N N N N N N N N N N N N N N N N N N N N N N N N@ @ @ @ @ @ @ @ @ @ @ @ @ @? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? D C C C C C C C
''

1a& & &
. . .' ' '5 5 5 + + +46 6 6	S 	S 	S  + + +3 3 36+ + +, , ,% % %@ @ @/ / /C C C= = ="7 7 7      ) ) )0 0 0. . .	\ 	\ 	\  , , ,@B B B8 8 86 6 66 6 6= = =% % %  ' ' '    C C C(	 	 	4 4 47 7 7[ [ [4
' 
' 
'     ; ; ; ; ;r   