
    sgyH                     p   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 Zy8)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                  h    t        t        d            dk(  sJ t        t        d            dk(  sJ y )NC   67z-1)mcoder	        S/var/www/html/venv/lib/python3.12/site-packages/sympy/printing/tests/test_octave.pytest_Integerr   "   s0    %%%%%%r   c                  X   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 y )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!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 y )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                  H   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 y )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3q6!"&6666a>Y&&&Q=H$$$Q=H$$$1.000q?j(((q!...a,,,A?222!...1.0001a!%6666!Q $4444r   c                     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 y )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Aq!"&8888!Q $5555Q=L(((Q=\)))A<;&&&A<K'''A<K'''!,...1a![000A&'+====A:---Aq!"m3331"55551a!%6666!Q $4444Q{***r   c                     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 y )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AY&'+BBBBQ1"5555Q1"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 y )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N"#z111S&AaC.1AAaDHAqD))1a4!845,- - - RCAa 7eL9>@ ADR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 y )Nx.*yzx + yzx - yz-x)r   r   r   r   r   r   test_basic_opsr   u   sX    1:Q<7"""Q<7"""!9r   c                     t        dt        z        dk(  sJ t        t        dz        t        t        dz        cxk(  rdk(  sJ  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J  J t        t        t                    dk(  sJ t        t        t        j                  z        t        t        dz        cxk(  rdk(  sJ  J t        dt
        z        d	k(  sJ t        t
        dz        t        t
        dz        cxk(  rd	k(  sJ  J t        t
        dz        d
k(  sJ y )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>3V3333347|+++QVVGag>,>>>>>a>Y&&&AFFuQV}9	999992;&   R=E"d(O5v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 y )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2a=I%%%1a=E!!!1a?g%%%1Q<;&&&!A#q>\)))!A#!!3333!A#z!"lZ5E5Eb5I&IIII1R=J&&&1a!B?222r   c                  Z   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 y )	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                     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 y )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8t1:!A$q&!(((1Q3<8###a|+++r   c                  d   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 y )Nr   infz-infNaNzexp(1)r   )r   r   r   r   NegativeInfinityr   Exp1r#   r   r   r   test_constantsr      s    99":##$...<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 y )Nr   z2*(1+sqrt(5))/2z2*%sr   )r   r   r   r   r   r   r   r   test_constants_otherr      sf    ;#44447vb(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 y )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"""!9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 y )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1a()-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 y )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      s   1rd#$,,,C!Hc!f%Ar
CFGAJ') 	*A ?H8x1Q3=K'''1Q3=11111b!"d***1b!"m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 y )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      sT    C!Had1fQh'()A82222: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 y )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      sQ    
 	C!Had1fQh'!Q!56A)H8xr   c                     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 y )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      s    sD!AS!QAS!QA1:1:1Q<7"""1Q<7"""A(1+%&'+====QTz)))A;%AFFy(((r   c                      t        dd      } t        d| |       }t        d| d      }t        t        ||            dk(  sJ y )Nr   Tr   r   r   r   zA \ x)r   rX   r   r   )r   r   r   s      r   test_MatrixSolver   	  sD    sD!AS!QAS!QAQ"#x///r   c                  <    t        dt        d      z        dk(  sJ y )N   r   z6*eye(3))r   rY   r   r   r   test_special_matricesr     s    8A;:---r   c            	      p   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 y )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!:;%	"#{222!QqS1ad)$%)????!SVVAq"-r237[[[[r   c                      t        t        t        z   t        z  dd      } dt        j                  d      z  }| |k(  sJ y )NmeF	assign_toinlinez#Catalan = %s;
me = (x + y)/Catalan;r   )r   r   r   r   r   )sourcer   s     r   test_octave_noninliner     s@    AaC=D?F	 bH Xr   c                  b   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kD  ft        t              t        dkD  f      t	        t
        fd       y )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   (  sA   aQZ!Q$.D;????%24 4 4U3	   adAE]QT1q5MAqD!a%=1a4,OD:H ;("""%():S)@@@@U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 y )	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;BBBBQqS?KKKK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 y )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  sP    	{Ac"n444AA Ac"&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
       y )Nr   r   r   r   Cr   r   zB = [1 2 3];c                  &    t         t              S Nr   )r   r   r   s   r   r   z3test_octave_matrix_assign_to_more.<locals>.<lambda>]  s    uQ!4 r   c                      t               S r   r   r   r   s   r   r   z3test_octave_matrix_assign_to_more.<locals>.<lambda>^      uQ!4 r   rW   rX   r   rS   r   r   r   r   s    @@r   !test_octave_matrix_assign_to_morer  W  sV    	{AS!QAS!QAa N222
:45
:45r   c                      t        dgg      t        ddd      } t        ddd      t        |       dk(  sJ t        t        fd       y )	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  sN    uAS!QAS!QAa H,,, :45r   c                  F   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 y )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%$/04EEEET1a A8t4!c!C&k)AcF233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 y )NTtrueFfalse)r   r   r  r  r   r   r   test_octave_booleanr  u  sR    ;&   =F"""<7""">W$$$r   c                      t        t              5  t        t        j                         d d d        t        d      } t         | t              j                  t              d      dk(  sJ y # 1 sw Y   DxY w)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  |  sa    	#	$ !a !A11e,	  ! !s   A--A6c                      ddl m}  t        t              5  t	         | t
        t        t                     d d d        y # 1 sw Y   y xY w)Nr   assoc_laguerre)#sympy.functions.special.polynomialsr  rS   r  r   r   r   r   r  s    r   *test_octave_not_supported_not_on_whitelistr    s4    B	#	$ 'nQ1%&' ' 's	    ?Ac                     t        t        dt                    dk(  sJ t        t              5  t        t        dt                     d d d        t        t        t
        t              d      dk(  sJ y # 1 sw Y   .xY w)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    sk    1+---	#	$ fQl1e,	   s   A55A>c                      t        d      } t        d      }t        | t        dk  f|t        dk  fd      }t        |d      dk(  sJ y )	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#    sP    	
9B	
;B	BA;Q!Vi	8BE"	  r   c                  0   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 y )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'    s"   S!QAS!QAS!QAS!QA1AsA8v1:###1Q<<'''1:###1Q<?*** q!$%000q!A#&'=888quac*+/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 y )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-    sZ    Q2AAdGAdGAdGAdGcAdG8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 y )Nz
sinc(x/pi)r   zsinc((x + 3)/pi)zsinc(x + 3))r   r4   r   r   r   r   r   	test_sincr/    sT    a>\)))a!e!3333b!a%j!"m333r   c                  P   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              | j4                  dz   k(        r)J  y )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    sh    3S#sD$dD$D$dD%uU 7 1Q41::#556667r   c                  
   t        d      } t        t        t        t        fD ]*  }t         || t                    |j                  dz   k(  r*J  t        t        t        t        t        t        t        t        fD ])  }t         |t                    |j                  dz   k(  r)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 y )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 =1Q7#qzzH'<<<<=D#vw(EJ 71Q4 AJJ$66667wq!}%);;;;wq!}%);;;;vay!\111{1~&,666vay!\111{1~&,666z!Q'(,SSSSz!Q'(,HHHHq*Q**+/NNNNr!Qx $XXXXr!Qx $XXXXx{#}444x1~&*:::: r!u!3333}Q'(,ooooz!}%)ZZZZr   c                      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   j                  || |z
        }t        |      d	k(  sJ y )
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8&&&r   c                      t        t        t                    dk(  sJ t        t              5  t        t        t        t
                     d d d        y # 1 sw Y   y xY w)Nzzeta(x))r}   r6   r   rS   r  r   r   r   r   test_zeta_printing_issue_14820r;    sE    tAw9,,,	#	$  DAJ     s   AAc                      t        t        t                    dk(  sJ t        t        t        t                    dk(  sJ y )Nz(logint(x) - logint(2))z(-erf(x) + erf(y)))r}   rz   r   r{   r   r   r   r   test_automatic_rewriter=    s4    r!u!::::tAqz"&::::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 3) ) ) ) ) ) ) ) )M M M M M M M / 9J J JN N N N@ @? ? ? ? ? D
'
1a&
.'5 +46	S+36+,%@/C="7    )0.	\,@B866=%'C(	47[4
' ;r   