
    \hqH                     p   S SK JrJrJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:  S SKJ;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrR  S SKSJTrTJUrU  S SKVJWrW  S SKXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_  S SK`JaraJbrbJcrcJdrdJereJfrfJgrgJhrhJiriJjrjJkrkJlrl  S S	KmJnrnJoroJprpJqrqJrrr  S S
KsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~JrJrJrJr  S SKJrJr  \" S5      u  rrrS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\US 5       rS  rS! rS" rS# rS$ rS% rS& rS' rS( rS) rS* rS+ rS, rS- rS. rS/ rS0 rS1 rS2 rS3 rS4 rS5 rS6 rS7 rg8)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                  l    [        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   eg )NC   67z-1)mcoder	        X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/tests/test_octave.pytest_Integerr   "   s0    %%%%%%r   c                  d   [        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        S	S5      5      S:X  d   e[        [        [        SS5      -   5      S
:X  d   e[        [        SS5      [        -  5      S:X  d   eg )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                     [        [        [        [        5      5      S:X  d   e[        [	        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   eg )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   [        [        [        5      [        [        5      -  5      S:X  d   e[        [	        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S	:X  d   e[        [        [        5      5      S
:X  d   e[        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   eg )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                     [        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [	        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S	:X  d   e[        [        [        5      5      S
:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [        [        5      5      S:X  d   e[        [!        [        5      5      S:X  d   e[        [#        [        5      5      S:X  d   e[        [%        [        [        5      5      S:X  d   e[        ['        [        [        5      5      S:X  d   e[        [)        [        5      5      S:X  d   e[        [)        [        S5      5      S:X  d   e[        [+        [        5      5      S:X  d   e[        [+        [        [        5      5      S:X  d   e[        [-        [        [        5      5      S:X  d   e[        [/        [        [        5      5      S:X  d   eg )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                     [        [        [        [        5      [	        [        [        5      -   5      S:X  d   e[        [        [        [        [
        5      5      S:X  d   e[        [	        [        [        [
        5      5      S:X  d   eg )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                     [        [        S-  5      S:X  d   e[        [        [        S-  -  5      S:X  d   e[        [        [        SS5      -  5      S:X  d   e[	        S[        [        S[        -  5      5      n [        SU " [        5      S-  [        [        [        -  -
  -  -  [        S-  [        -   -  5      S	:X  d   e[        [        S
[        [        [        [        [        SS9SSS9SS95      S:X  d   eg )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                      [        [        [        -  5      S:X  d   e[        [        [        -   5      S:X  d   e[        [        [        -
  5      S:X  d   e[        [        * 5      S:X  d   eg )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                     [        S[        -  5      S:X  d   e[        [        S-  5      [        [        S-  5      s=:X  a  S:X  d   e   e[        S[        [        5      -  5      S:X  d   e[        [        [        R                  * -  5      [        [        S-  5      s=:X  a  S:X  d   e   e[        [        [        5      5      S:X  d   e[        [        [        R                  -  5      [        [        S-  5      s=:X  a  S:X  d   e   e[        S[
        -  5      S	:X  d   e[        [
        S-  5      [        [
        S-  5      s=:X  a  S	:X  d   e   e[        [
        S-  5      S
:X  d   eg )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                  N   [        S[        -  5      S:X  d   e[        [        [        -  5      S:X  d   e[        S[        -  5      S:X  d   e[        [        [        -  5      S:X  d   e[        [        S-  5      S:X  d   e[        [        [        -  5      S:X  d   e[        [        [        -  5      S:X  d   e[        S[        -  [        -  5      S	:X  d   e[        S[        -  [        -  [        -  5      S
:X  d   e[        [        [        -  5      S:X  d   e[        S[        -  [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        S[        -  [        -  5      S:X  d   e[        S[        -  [        -  [        -  [        -  5      S:X  d   e[        S[        -  [        -  5      S:X  d   e[        [        S5      S-  5      S:X  d   e[        [        S5      S-  [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        [        [        -   [        -  5      S:X  d   e[        [        [        -   [        [        -   -  5      S:X  d   e[        [        [        -   [        -  5      S[        R                  " S5      -  :X  d   e[        [        S-  [        -  5      S:X  d   e[        [        S5      S-  [        -  [        -  [        -  5      S:X  d   eg )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                  f   [        [        S-  5      S:X  d   e[        [        S-  5      S:X  d   e[        [        [        S-  -  5      S:X  d   e[        [        [        -  5      S:X  d   e[        [        [        [        -  -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   eg )	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                     [        S5      n [        U 5      S:X  d   e[        SU -  5      S:X  d   e[        [        S5      S-  U -  5      S:X  d   e[        SSU -  -   5      S	:X  d   e[        [        S5      U -  5      S
:X  d   eg )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                  r   [        [        5      S:X  d   e[        [        5      S:X  d   e[        [        * 5      S:X  d   e[        [        R                  5      S:X  d   e[        [        R
                  5      S:X  d   e[        [        R                  5      S:X  d   e[        [        S5      5      S:X  d   eg )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                      [        S[        -  5      S:X  d   e[        S[        -  5      S[        R                  " S5      -  :X  d   e[        S[        -  5      S[        R                  " S5      -  :X  d   eg )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                     [        [        [        -  5      S:X  d   e[        [        [        -  5      S:X  d   e[        [        ) 5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   eg )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                      SSK Jn   [        U " [        [        5      5      S:X  d   e[        U " [        [        S-   5      5      S:X  d   e[        U " S[        -  [        5      5      S:X  d   eg )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            	      4   [        [        SSS/5      5      S:X  d   e[        S[        [        S-  5      [	        [        5      /SS[
        /S[        S5      [        [        5      //5      n Sn[        U 5      U:X  d   e[        U S S 2S4   5      S:X  d   e[        U SS S 24   5      S:X  d   e[        [        SS/ 5      5      S	:X  d   e[        [        SS
/ 5      5      S:X  d   e[        [        [        [        [        -
  [        * //5      5      S:X  d   eg )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                      [        S[        S[        -  5      S[        -  [        -  S-  //5      n [	        U 5      S:X  d   e[	        U R
                  5      S:X  d   eg )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                      [        S[        S[        -  5      S[        -  [        -  S-  /SS[        [        -  //5      n Sn[        U 5      U:X  d   eg )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                     [        SSS9n [        SX 5      n[        SX 5      n[        X-  5      S:X  d   e[        X!-  5      S:X  d   e[        SU-  U-  5      S	:X  d   e[        US-  U-  5      S
:X  d   e[        XS[        U 5      -  -   -  5      S:X  d   e[        U[        S-  -  5      S:X  d   e[        US-  5      S:X  d   e[        U[
        R                  -  5      S:X  d   eg )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!AS!A::1Q<7"""1Q<7"""(1+%&'+====QTz)))A;%AFFy(((r   c                  ~    [        SSS9n [        SX 5      n[        SU S5      n[        [        X5      5      S:X  d   eg )Nr   Tr   r   r   r   zA \ x)r   rX   r   r   )r   r   r   s      r   test_MatrixSolver   	  s@    sD!AS!AS!QAQ"#x///r   c                  >    [        S[        S5      -  5      S:X  d   eg )N   r   z6*eye(3))r   rY   r   r   r   test_special_matricesr     s    8A;:---r   c            	      ~   [        SSSSSSS//SS	S
/S/5      S:X  d   e[        S5      S:X  d   e[        S/5      S:X  d   e[        S5      S:X  d   e[        [        / SQ6 5      S:X  d   e[        S[        [        -  S[        S-  445      S:X  d   e[        S[	        S5      [        SS/ 5      / 45      S:X  d   eg )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                  ~    [        [        [        -   [        -  SSS9n S[        R                  " S5      -  nX:X  d   eg )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 r   c                  X  ^ [        [        [        S:  4[        S-  S45      m[        T5      S:X  d   e[        TSS9S:X  d   e[        TSSS	9S
:X  d   e[        [        S-  [        S:  4[        S-  [        S:  4[        S-  [        S:  4[        S-  S45      mSn [        T5      U :X  d   e[        TSS9SU -   S-   :X  d   e[        TSSS	9S:X  d   e[        [        [        S:  4[        S-  [        S:  4[        [        5      [        S:  45      m[	        [
        U4S j5        g )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 5      $ )Nr   )exprs   r   <lambda>'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                     [        [        [        S:  4[        S-  S45      n [        SU -  5      S:X  d   e[        U [        -  5      S:X  d   e[        U [        [        -  -  5      S:X  d   e[        U S-  5      S:X  d   eg )	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                      [        / SQ/5      n [        U SS9S:X  d   e[        SS/SS//5      n [        U S	S9S
:X  d   eg )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                     ^^ [        / SQ/5      m[        SSS5      n [        SSS5      m[        TU S9S:X  d   e[        [        U4S	 j5        [        [        UU4S
 j5        g )Nr   r   r   r   Cr   r   zB = [1 2 3];c                      > [        T [        S9$ Nr   )r   r   r   s   r   r   3test_octave_matrix_assign_to_more.<locals>.<lambda>]  s    uQ!4r   c                     > [        T TS9$ r   r   r   r   s   r   r   r   ^      uQ!4r   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                     ^^ [        S//5      m[        SSS5      n [        SSS5      m[        TU S9S:X  d   e[        [        UU4S j5        g )	Nr   r   r   r   r   r   zB = 3;c                     > [        T TS9$ r   r   r   s   r   r   (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                  N   [        [        S[        [        -  //5      n [        U S   S-  U S   -   U S   -   5      S:X  d   e[	        SSS5      n [        U 5      S:X  d   e[        U S   S-  [        U S   5      -   U S   -   5      S	:X  d   e[        [        U 5      5      S
:X  d   eg )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                      [        S5      S:X  d   e[        [        R                  5      S:X  d   e[        S5      S:X  d   e[        [        R                  5      S:X  d   eg )NTtrueFfalse)r   r   r  r  r   r   r   test_octave_booleanr  u  sR    ;&   =F"""<7""">W$$$r   c                      [        [        5         [        [        R                  5        S S S 5        [        S5      n [        U " [        5      R                  [        5      SS9S:X  d   eg ! , (       d  f       NG= f)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  |  sZ    	#	$a  
%A11e,	   
%	$s   A++
A9c                      SSK Jn   [        [        5         [	        U " [
        [        [        5      5        S S S 5        g ! , (       d  f       g = f)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	#	$nQ1%& 
%	$	$s	    ?
Ac                  
   [        [        S[        5      5      S:X  d   e[        [        5         [        [        S[        5      5        S S S 5        [        [        [
        [        5      SS9S:X  d   eg ! , (       d  f       N1= f)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     sd    1+---	#	$fQl 
%1e,	   
%	$s   A44
Bc                      [        S5      n [        S5      n[        U [        S:  4U[        S:*  4S5      n[        USS9S:X  d   eg )	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                  4   [        SSS5      n [        SSS5      n[        SSS5      n[        SSS5      n[        X5      n[        S5      n[        U5      S:X  d   e[        XB-  5      S	:X  d   e[        X4-  U-  5      S
:X  d   e[        X@-  5      S:X  d   e[        U[        -  [
        -  5      S:X  d   e[        [        X5      5      S:X  d   e[        [        U SU-   5      5      S:X  d   e[        [        XR                  -  SU-   5      5      S:X  d   eg )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AsA8v:###Q<<''':###1Q<?*** q$%000q!A#&'=888quac*+/BBBBr   c                      [        SS0 5      n SU S'   SU S'   SU S'   S	U S
'   [        [        -  U S'   [        U 5      S:X  d   eg )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_sparser0    sZ    Q2AAdGAdGAdGAdGcAdG8D  r   c                      [        [        [        5      5      S:X  d   e[        [        [        S-   5      5      S:X  d   e[        [        [        [        S-   -  5      5      S:X  d   eg )Nz
sinc(x/pi)r   zsinc((x + 3)/pi)zsinc(x + 3))r   r4   r   r   r   r   r   	test_sincr2    sT    a>\)))a!e!3333b!a%j!"m333r   c                  ^   [         [        [        [        [        [
        [        [        [        [        [        [        [        [        [        [        [         ["        [$        [&        [(        [*        [,        [.        4 H/  n [1        U " [2        5      U R4                  S-   :H  5      (       a  M/   e   g )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_trigfunr6    sf    3S#sD$dD$D$dD%uU 1Q41::#556666r   c                  6   [        S5      n [        [        [        [        4 H,  n[        U" U [        5      5      UR                  S-   :X  a  M,   e   [        [        [        [        [        [        [        [        4 H+  n[        U" [        5      5      UR                  S-   :X  a  M+   e   [        [!        U [        5      5      S:X  d   e[        [#        U [        5      5      S:X  d   e[        [%        [        5      5      S:X  d   e[        ['        [        5      5      S:X  d   e[        [)        [        5      5      S:X  d   e[        [+        [        5      5      S	:X  d   e[        [-        U [        5      5      S
:X  d   e[        [/        U [        5      5      S:X  d   e[        [0        [/        U [        5      -  5      S:X  d   e[        [3        U [        5      5      S:X  d   e[        [5        U [        5      5      S:X  d   e[        [7        [        5      5      S:X  d   e[        [7        [        U 5      5      S:X  d   e[        [9        [        5      5      S:X  d   e[        [;        [        5      5      S:X  d   e[        [=        [        5      5      S:X  d   eg )Nr   z(n, x)r4  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   r5  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_specfunr8    s   sAw11Q7#qzzH'<<<< 2D#vw(EJ1Q4 AJJ$6666 K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                      [        SSS5      n [        SSS5      n[        SSS5      n[        U S   5      S:X  d   e[        SU S   -  5      S:X  d   eUS   R                  X U-
  5      n[        U5      S	:X  d   eg )
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_printingr<    s    S!QAS!QAS!QA4>Y&&&QtW,,,	$QAA8&&&r   c                      [        [        [        5      5      S:X  d   e[        [        5         [        [        [        [
        5      5        S S S 5        g ! , (       d  f       g = f)Nzzeta(x))r}   r6   r   rS   r  r   r   r   r   test_zeta_printing_issue_14820r>    s<    tAw9,,,	#	$DAJ 
%	$	$s   A
A#c                      [        [        [        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   eg )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*  r0  r2  r6  r8  r<  r>  r@  r   r   r   <module>rJ     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   