
    Цi6                        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  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.J/r/J0r0J1r1J2r2J3r3J4r4  S SKJ5r5  S S	K6J7r7  \" S
5      u  r8r9r:S r;S r<S r=S r>S r?S r@S rAS rBS rCS rDS rES rFS rGS rHS rI\5S 5       rJS rKS rLS rMS rNS rOS  rPS! rQS" rRS# rSS$ rTS% rUS& rVS' rWS( rXS) rYS* rZS+ 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)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)r4   r	        ^/var/www/html/ai-image-ml/venv/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)r4   r   xr9   r:   r;   test_RationalrE      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)	r4   r   rD   yr   r   r   r   r   r9   r:   r;   test_RelationalrH   !   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))r4   r   rD   r   absr   r9   r:   r;   test_FunctionrK   *   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)evaluater8   z-2 * x ./ (y .* y))r4   rD   rG   r   r   r   r   r   )rN   s    r;   test_PowrR   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)r4   rD   rG   r9   r:   r;   test_basic_opsrU   <   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 )NrO   z1 ./ xr8   g      z1 ./ sqrt(x)g      zsqrt(x)g      ?z1 / piz1 / sqrt(pi))r4   rD   r   r   Halfr   r9   r:   r;   test_1_over_x_and_sqrtrX   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 / pirT   z
3 * x .* yz3 * pi * x .* yzx ./ yz
3 * x ./ yzx .* y ./ zzx .* z ./ yrO   z1 ./ (x .* y)rM   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)r4   rD   r   rG   zr   r   r9   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 ^ 3rM   zx .^ 2zx .^ (pi ^ 3)zx .^ yzx .^ (y .^ z)z(x .^ y) .^ z)r4   r   rD   rG   r[   r9   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imrZ   5imr>   rM   z(3 // 2) * im   z3 + 4im)r   r4   )r`   s    r;   	test_imagrd   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erO   )r4   r   r   r   NegativeInfinityrg   Exp1r   r9   r:   r;   test_constantsrk   }   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 )NrM   z
2 * goldenz2 * catalanz2 * eulergamma)r4   r   r   r   r9   r:   r;   test_constants_otherrm      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))r4   rD   rG   r[   r9   r:   r;   test_booleanro      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            	      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 )NrO   
   z[10]rM   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])	r4   r!   r   rD   rJ   r   r   r   rG   Aexpecteds     r;   test_Matricesru      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 )NrO   rM   r>   rZ   z"[1 sin(2 ./ x) (3 // 5) * pi ./ x]z$[1, sin(2 ./ x), (3 // 5) * pi ./ x])r!   r   rD   r   r4   Trs   s    r;   test_vector_entries_hadamardry      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 )NrO   rM   r>   rZ   z.[1 sin(2/x) 3*pi/(5*x);
1        2        x*y])r!   r   rD   r   rG   r4   rr   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)integerrs   BzA * BzB * ArM   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"   r4   r#   rD   r   rW   )r}   rs   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))r4   r#   r9   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 )NrO   rM   r>   rc   rZ   r   r?      rA   rq      z5Any[1, 2, 3, Any[4, 5, Any[6, 7]], 8, Any[9, 10], 11])rO   rM   )r>   rc   z(1, 2, (3, 4))zAny[1])rO   z(1,)rO   rM   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[]))r4   r
   rD   rG   r    r!   r9   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   )r4   rD   rG   r   evalf)sourcert   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 )NrO   rM   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>   rc   rZ   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      $ )Nr3   )exprs   r;   <lambda>&test_julia_piecewise.<locals>.<lambda>   s
    z$/r:   )r   rD   r4   r   r   
ValueError)rt   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 )	NrO   rM   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   rD   r4   rG   )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]rO   rM   r>   rc   rs   zA = [1 2;
3 4])r!   r4   rx   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   rO   r>   CrM   r   zB = [1 2 3]c                      > [        T [        S9$ Nr   )r4   rD   rx   s   r;   r   2test_julia_matrix_assign_to_more.<locals>.<lambda>  s    z!q9r:   c                     > [        T TS9$ r   r3   rs   r   s   r;   r   r         z!q9r:   r!   r"   r4   r   r   r   rs   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   rO   r   rM   r   zB = [3]c                     > [        T TS9$ r   r3   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 )NrM   r   r   )r   rO   )r   rM   zx .^ 2 + x .* y + 2AArO   r>   z%sin(AA[1,2]) + AA[1,1] .^ 2 + AA[1,3]zAA[1,1] + AA[1,2] + AA[1,3])r!   rD   rG   r4   r"   r   sumrx   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)r4   r   r   r   r9   r:   r;   test_julia_booleanr   0  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   NotImplementedErrorr4   r   ComplexInfinityr   rD   diff)r   s    r;   test_julia_not_supportedr   7  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   rO   )rO   TF)r   zCif (x < 0)
    endless
elseif (x <= 1)
    elsewhere
else
    1
end)r   r   rD   r4   )t1t2r   s      r;   %test_trick_indent_with_end_else_wordsr   C  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 )Nrs   r>   r   vrO   hzA .* Bz(A .* B) * vzh * (A .* B) * vz(A .* B) * Az(x .* y) * (A .* B))r"   r$   r4   rD   rG   )rs   r   r   r   r   s        r;   test_haramardr   R  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 )NrZ   r   rq   )rM   rM      )rO   rM      )rO   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%   rD   rG   r4   )Ms    r;   test_sparser   `  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+   r4   rD   __name__r.   r0   r/   r1   r,   r-   r&   r'   )r}   r   s     r;   test_specfunr   l  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 )
Nrs   rO   r>   r   r   r   zA[1,1]z
3 * A[1,1]z(A - B)[1,1])r"   r4   subs)rs   r   r   Fs       r;   test_MatrixElement_printingr   x  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   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.   r/   r0   r1   r2   sympy.printing.juliar4   rD   rG   r[   r<   rE   rH   rK   rR   rU   rX   r\   r^   rd   rk   rm   ro   ru   ry   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r:   r;   <module>r      s&  ? ? ? ? ? I I C C ' 9; ;N N N N ' +
'
1a+
:,/	Y"2A64*%86B&E % %35	o1@@=;;?*	6		e
,r:   