
    \h6                        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  S SK JrJrJrJrJrJr  S SKJrJrJrJrJrJrJr  S SKJr  S SK J!r!  S SK"J#r#J$r$J%r%J&r&J'r'J(r(  S SK)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5  S SKJ6r6  S S	K7J8r8  \" S
5      u  r9r:r;S r<S r=S r>S r?S r@S rAS rBS rCS rDS rES rFS rGS rHS rIS rJS rK\6S 5       rLS rMS rNS rOS rPS  rQS! rRS" rSS# rTS$ rUS% rVS& rWS' rXS( rYS) rZS* r[S+ r\S, r]g-).    )SpioosymbolsFunctionRationalIntegerTupleSymbolEqNeLeLtGtGe)
EulerGammaGoldenRatioCatalanLambdaMulPow)	Piecewisesqrtceilingexpsincossinc)raises)implemented_function)eyeMatrixMatrixSymbolIdentityHadamardProductSparseMatrix)jnynbesseljbesselybesselibesselkhankel1hankel2airyaiairybiairyaiprimeairybiprime)XFAIL
julia_codezx,y,zc                  l    [        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   eg )NC   67z-1)r5   r	        W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/tests/test_julia.pytest_Integerr=      s0    gbk"d***gbk"d***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 // 7) * x)r5   r   xr:   r;   r<   test_RationalrF      s    hq!n%111hr1o&#---hq"o&)333hr2&'8333a(1a.()\999hq!nQ&'>999r;   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)	r5   r   rE   yr   r   r   r   r   r:   r;   r<   test_RelationalrI   !   s    bAh8+++bAh8+++bAh8+++bAh7***bAh7***bAh8+++r;   c                      [        [        [        5      [        [        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abs(x)zceil(x))r5   r   rE   r   absr   r:   r;   r<   test_FunctionrL   *   sQ    c!fA&'+====c!f)))gaj!Y...r;   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)evaluater9   z-2 * x ./ (y .* y))r5   rE   rH   r   r    r   r   r   )rO   s    r<   test_PowrS   0   s    adx'''a!Q$i O333a!Q'(O;;;S&AaC.1Aa1cQAX..1q9:89 9 9 c"aS1e%<b5!Q9>@ ADXY Y Y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)r5   rE   rH   r:   r;   r<   test_basic_opsrV   <   sZ    ac?h&&&a!e'''a!e'''qb>T!!!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 )NrP   z1 ./ xr9   g      z1 ./ sqrt(x)g      zsqrt(x)g      ?z1 / piz1 / sqrt(pi))r5   rE   r   r   Halfr   r:   r;   r<   test_1_over_x_and_sqrtrY   C   s0    ac?h&&&ae
1d7 3?x?????aQi N222a!&&j!Z4%8JNJJJJJd1g)+++ai Jq#v$6C)CCCCCadx'''b"fBH!5AAAAAAb$h>111r;   c                      [        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: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 / pirU   z
3 * x .* yz3 * pi * x .* yzx ./ yz
3 * x ./ yzx .* y ./ zzx .* z ./ yrP   z1 ./ (x .* y)rN   z2 * pi * x ./ (y .* z)z3 * pi ./ x   z3 // 5z(3 // 5) * xzx ./ (y .* z)z(x + y) ./ zz(x + y) ./ (x + z)z(x + y) / eulergammazx / (3 * pi)z(3 // 5) * x .* y / pi)r5   rE   r   rH   zr   r   r:   r;   r<   test_mix_number_mult_symbolsr]   Q   s   ac?g%%%bdx'''ac?h&&&bdy(((ac?g%%%adx'''ac?h&&&ac!e,,,ad1fQh#4444ac?h&&&ac!e,,,ac!e---ac!e---ac!e///ad1fQhqj!%====ad1f...ad1f)))ad1fQh>111ac!e///qsAg.000qsQqSk"&::::qsJ&'+AAAAac"f///ad1fQhqjm$(@@@@r;   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 ^ 3rN   zx .^ 2zx .^ (pi ^ 3)zx .^ yzx .^ (y .^ z)z(x .^ y) .^ z)r5   r   rE   rH   r\   r:   r;   r<   test_mix_number_pow_symbolsr_   l   s    b!e(((adx'''a"a%j!_444adx'''a!Q$i O333q!tai O333r;   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g )
NIimr[   5imr?   rN   z(3 // 2) * im   z3 + 4im)r   r5   )ra   s    r<   	test_imagre   u   sm    	#Aa=D   ac?e###qtAvqj!_444a!e	)))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NaNerP   )r5   r   r   r   NegativeInfinityrh   Exp1r   r:   r;   r<   test_constantsrl   }   s    b>T!!!b>U"""rc?f$$$a(()V333aee%%%aff$$$c!f$$$r;   c                      [        S[        -  5      S:X  d   e[        S[        -  5      S:X  d   e[        S[        -  5      S:X  d   eg )NrN   z
2 * goldenz2 * catalanz2 * eulergamma)r5   r   r   r   r:   r;   r<   test_constants_otherrn      sH    am$444ai M111a
l#'7777r;   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))r5   rE   rH   r\   r:   r;   r<   test_booleanrp      s    a!e(((a!e(((qb>T!!!a!eai M111a!eai M111q1uk"m333q1uk"o555r;   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))r5   r   rE   r   r:   r;   r<   	test_sincrr      sU    d1g.000d1q5k"&::::d2Q<()]:::r;   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 )NrP   
   z[10]rN   r   zB[1 sin(x / 2)  abs(x);
0          1      pi;
0          e ceil(x)]z	[1, 0, 0]z[1 sin(x / 2) abs(x)]zzeros(0, 0)r?   zzeros(0, 3)z[x x - y -y])	r5   r"   r   rE   rK   r   r   r   rH   Aexpecteds     r<   test_Matricesrx      s   fQB4()V333C!Hc!f%Ar
CFGAJ') 	*A(H a=H$$$a!f,,,a!f!8888fQ2&'=888fQ2&'=888fq!a%!n-./>AAAr;   c                      [        S[        S[        -  5      S[        -  [        -  S-  //5      n [	        U 5      S:X  d   e[	        U R
                  5      S:X  d   eg )NrP   rN   r?   r[   z"[1 sin(2 ./ x) (3 // 5) * pi ./ x]z$[1, sin(2 ./ x), (3 // 5) * pi ./ x])r"   r   rE   r   r5   Trv   s    r<   test_vector_entries_hadamardr|      sT    C!Had1fQh'()Aa=@@@@acc?DDDDr;   c                      [        S[        S[        -  5      S[        -  [        -  S-  /SS[        [        -  //5      n Sn[        U 5      U:X  d   eg )NrP   rN   r?   r[   z.[1 sin(2/x) 3*pi/(5*x);
1        2        x*y])r"   r   rE   r   rH   r5   ru   s     r<   "test_Matrices_entries_not_hadamardr~      sQ    
 	C!Had1fQh'!Q!56A)Ha=H$$$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)integerrv   BzA * BzB * ArN   z	2 * A * Bz	2 * B * Ar?   zA * (3 * eye(n) + B)zA ^ (x .^ 2)zA ^ 3zA ^ (1 // 2))r   r#   r5   r$   rE   r   rX   )r   rv   r   s      r<   test_MatrixSymbolr      s    sD!AS!AS!Aac?g%%%ac?g%%%ac!e+++ac!e+++aQx{]*+,0FFFFa!Q$i N222adw&&&ai N222r;   c                  >    [        S[        S5      -  5      S:X  d   eg )N   r?   z
6 * eye(3))r5   r$   r:   r;   r<   test_special_matricesr      s    am$444r;   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 )NrP   rN   r?   rd   r[   r   r@      rB   rt      z5Any[1, 2, 3, Any[4, 5, Any[6, 7]], 8, Any[9, 10], 11])rP   rN   )r?   rd   z(1, 2, (3, 4))zAny[1])rP   z(1,)rP   rN   r?   z	(1, 2, 3)z(1, x .* y, (3, x .^ 2))r   z.(1, [1 0 0;
0 1 0;
0 0 1], zeros(0, 0), Any[]))r5   r
   rE   rH   r!   r"   r:   r;   r<   test_containersr      s    q!QA1vAr7B?@?@ @ @n%)9999qc?h&&&dv%%%eY'(K777q!A#1a4y)*.HHHHq#a&&Ar"2B78<nnnnr;   c                  ~    [        [        [        -   [        -  SSS9n S[        R                  " S5      -  nX:X  d   eg )NmeF	assign_toinlinez)const Catalan = %s
me = (x + y) / Catalan   )r5   rE   rH   r   evalf)sourcerw   s     r<   test_julia_noninliner      s>    1geDF	!bH r;   c                  R  ^ [        [        [        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 -   :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 )NrP   rN   Tz((x < 1) ? (x) : (x .^ 2))rr   zr = ((x < 1) ? (x) : (x .^ 2))Fr   z,if (x < 1)
    r = x
else
    r = x .^ 2
endr?   rd   r[   zI((x < 1) ? (x .^ 2) :
(x < 2) ? (x .^ 3) :
(x < 3) ? (x .^ 4) : (x .^ 5))zr = zmif (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      $ )Nr4   )exprs   r<   <lambda>&test_julia_piecewise.<locals>.<lambda>  s
    z$/r;   )r   rE   r5   r   r   
ValueError)rw   r   s    @r<   test_julia_piecewiser      s>   aQZ!Q$.Dd;;;;dc*(* * *dc%8	   adAE]QT1q5MAqD!a%=1a4,OD1H dx'''dc*fx.????dc%8		 	 	 aQZ!Q$AQQ@D
:/0r;   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 )	NrP   rN   Tz2 * ((x < 1) ? (x) : (x .^ 2))z((x < 1) ? (x) : (x .^ 2)) ./ xz&((x < 1) ? (x) : (x .^ 2)) ./ (x .* y)r?   z((x < 1) ? (x) : (x .^ 2)) / 3)r   rE   r5   rH   )pws    r<    test_julia_piecewise_times_constr     s    	Aq1u:1d|	,Bad????bd@@@@b!A#h#KKKKbd????r;   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]rP   rN   r?   rd   rv   zA = [1 2;
3 4])r"   r5   r{   s    r<   test_julia_matrix_assign_tor     sP    	{Aa3'=888AA Aa3'+<<<<r;   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   rP   r?   CrN   r   zB = [1 2 3]c                      > [        T [        S9$ Nr   )r5   rE   r{   s   r<   r   2test_julia_matrix_assign_to_more.<locals>.<lambda>  s    z!q9r;   c                     > [        T TS9$ r   r4   rv   r   s   r<   r   r         z!q9r;   r"   r#   r5   r   r   r   rv   r   s    @@r<    test_julia_matrix_assign_to_morer     sV    	{AS!QAS!QAa1%666
:9:
:9:r;   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   rP   r   rN   r   zB = [3]c                     > [        T TS9$ r   r4   r   s   r<   r   'test_julia_matrix_1x1.<locals>.<lambda>'  r   r;   r   r   s    @@r<   test_julia_matrix_1x1r      sN    uAS!QAS!QAa1%222 :9:r;   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 )NrN   r   r   )r   rP   )r   rN   zx .^ 2 + x .* y + 2AArP   r?   z%sin(AA[1,2]) + AA[1,1] .^ 2 + AA[1,3]zAA[1,1] + AA[1,2] + AA[1,3])r"   rE   rH   r5   r#   r   sumr{   s    r<   test_julia_matrix_elementsr   *  s    Aqs}Aagqj1T7*QtW459NNNNT1a Aa=D   agqj3qv;.37823 3 3c!f!>>>>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)r5   r   r   r   r:   r;   r<   test_julia_booleanr   4  sV    dv%%%aff'''e'''agg')))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 Julia:
# Derivative
Derivative(f(x), x))r   NotImplementedErrorr5   r   ComplexInfinityr   rE   diff)r   s    r<   test_julia_not_supportedr   ;  s\    	#	$1$$% 
% 	Aadiil51	  	 
%	$s   A++
A9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   rP   )rP   TF)r   zCif (x < 0)
    endless
elseif (x <= 1)
    elsewhere
else
    1
end)r   r   rE   r5   )t1t2r   s      r<   %test_trick_indent_with_end_else_wordsr   G  sP    	
9B	
;B	BA;Q!Vi	8Bb'	  r;   c                  Z   [        SSS5      n [        SSS5      n[        SSS5      n[        SSS5      n[        X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g )Nrv   r?   r   vrP   hzA .* Bz(A .* B) * vzh * (A .* B) * vz(A .* B) * Az(x .* y) * (A .* B))r#   r%   r5   rE   rH   )rv   r   r   r   r   s        r<   test_haramardr   V  s    S!QAS!QAS!QAS!QAAa=H$$$ac?n,,,ac!e 2222ac?n,,,ac!e 5555r;   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   rt   )rN   rN      )rP   rN      )rP   r?      )r   r?   )r?   r   zHsparse([4, 2, 3, 1, 2], [1, 3, 3, 4, 4], [x .* y, 20, 10, 30, 22], 5, 6))r&   rE   rH   r5   )Ms    r<   test_sparser   d  sZ    Q2AAdGAdGAdGAdGcAdGa=R  r;   c                  (   [        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[        [        U [        5      5      S:X  d   e[        [        U [        5      5      S:X  d   eg )Nr   z(n, x)z(x)zhankelh1(n, x)zhankelh2(n, x)z?sqrt(2) * sqrt(pi) * sqrt(1 ./ x) .* besselj(n + 1 // 2, x) / 2z?sqrt(2) * sqrt(pi) * sqrt(1 ./ x) .* bessely(n + 1 // 2, x) / 2)r   r)   r*   r+   r,   r5   rE   __name__r/   r1   r0   r2   r-   r.   r'   r(   )r   r   s     r<   test_specfunr   p  s    sAw1!Aq'"ajj8&;;;; 2k6;7!A$1::#5555 8gam$(8888gam$(8888bAh#ddddbAh#ddddr;   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 )
Nrv   rP   r?   r   r   r   zA[1,1]z
3 * A[1,1]z(A - B)[1,1])r#   r5   subs)rv   r   r   Fs       r<   test_MatrixElement_printingr   |  s    S!QAS!QAS!QAag(*+*a!D'k"l232	$QAAa=N*+*r;   N)^
sympy.corer   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.functionsr   r   r   r   r   r   r   sympy.testing.pytestr   sympy.utilities.lambdifyr    sympy.matricesr!   r"   r#   r$   r%   r&   sympy.functions.special.besselr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   sympy.printing.juliar5   rE   rH   r\   r=   rF   rI   rL   rS   rV   rY   r]   r_   re   rl   rn   rp   rr   rx   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r;   r<   <module>r      s.  ? ? ? ? ? I I I I I ' 9; ;N N N N ' +
'
1a+
:,/	Y"2A64*%86;
B&E % %35	o1@@=;;?*	6		e
,r;   