+
    i&0                        ^ RI Ht ^ RIHtHtHtHtHtHt ^ RI	H
t
 ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIt]! R4      w  tttR	 tR
 tR tR tR t]R 4       tR tR tR tR t R t!R t"R t#]R 4       t$R t%R t&R t'R t(R t)R t*R t+R# )    )StringIO)SsymbolspiCatalan
EulerGammaFunction)Equality)	Piecewise)RustCodeGencodegenmake_routine)XFAILNzx,y,zc                      \        4       p \        4       pV P                  . VR RRR7       VP                  4       pVR8X  g   Q hR# )fileFheaderempty N)r   r   dump_rsgetvalue)code_genoutputsources      e/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/utilities/tests/test_codegen_rust.pytest_empty_rust_coder      sA    }HZFRUC__FR<<    c                      R \         \        ,           \        ,          3p \        V RRRR7      w  pV^ ,          R8X  g   Q hV^,          pRpW#8X  g   Q hR# )testRustFr   test.rszNfn test(x: f64, y: f64, z: f64) -> f64 {
    let out1 = z*(x + y);
    out1
}
Nxyzr   	name_exprresultr   expecteds       r   test_simple_rust_coder*      sY    !a%#IiUCGF!9	!!!AYF	  r   c                  (   R \         \        ,           \        ,          3p \        V RRRR7      w  pV^ ,          R8X  g   Q hV^,          pR\        P
                  ,          pVP                  ^L4      P                  4       pRRV/,          pW%8X  g   Q hR	# )
r   r    TFr   r!   Code generated with SymPy %sz/*
 *%(version_line)s
 *
 *              See http://www.sympy.org/ for more information.
 *
 *                       This file is part of 'project'
 */
fn test(x: f64, y: f64, z: f64) -> f64 {
    let out1 = z*(x + y);
    out1
}
version_lineN)r#   r$   r%   r   sympy__version__centerrstripr'   r(   r   version_strr-   r)   s         r   test_simple_code_with_headerr4   $   s    !a%#IiEBGF!9	!!!AYF053D3DDK%%b)002L
	 
&'H r   c                      \        \        \        \        ,           4      p R V 3p\	        VRRRR7      w  pV^,          pRpW48X  g   Q hR# )r   r    Fr   z<fn test(x: f64, y: f64) -> f64 {
    let z = x + y;
    z
}
N)r
   r%   r#   r$   r   exprr'   r(   r   r)   s        r   test_simple_code_nameoutr8   ;   sN    AADIiUCGFAYF	  r   c                      R \         \        ,          3p \        V RRRR7      w  pV^,          pR\        P                  ! ^4      ,          pW#8X  g   Q hR# )r   r    Fr   z\fn test() -> f64 {
    const Catalan: f64 = %s;
    let out1 = PI.powf(Catalan);
    out1
}
N)r   r   r   evalfr&   s       r   test_numbersymbolr;   I   sS    W%IiUCGFAYF	
 	bH r   c                      R \         \        ,          \        .3p \        V RRRRR7      w  pV^,          pR\        P                  ! ^4      : R\        P                  ! ^4      : R2pW#8X  g   Q hR# )	r   r    FTr   r   inlinez3fn test() -> (f64, f64) {
    const Catalan: f64 = z;
    const EulerGamma: f64 = zR;
    let out1 = PI.powf(Catalan);
    let out2 = EulerGamma);
    (out1, out2)
}
N)r   r   r   r   r:   r&   s       r   test_numbersymbol_inliner?   W   sg     "g+z23Ii!$0GFAYF 
r	J,,R02H r   c                      \         \        ,           p \        R V \        \         \        .RR7      p\	        4       p\        4       pVP                  V.VR RRR7       VP                  4       pRpWE8X  g   Q hR# )r   rust)argument_sequencelanguageFr   zJfn test(z: f64, x: f64, y: f64) -> f64 {
    let out1 = x + y;
    out1
}
N)r#   r$   r   r%   r   r   r   r   )r7   routiner   r   r   r)   s         r   test_argument_orderrE   j   sn    q5D64Aq!9vVG}HZFgYuEJ__F	  r   c                      \         \        ,           \        ,          p \         \        ,
          \        ,          pR W.3p\        VRRRR7      w  pV^,          pRpWE8X  g   Q hR# )r   r    Fr   zwfn test(x: f64, y: f64, z: f64) -> (f64, f64) {
    let out1 = z*(x + y);
    let out2 = z*(x - y);
    (out1, out2)
}
Nr"   )expr1expr2r'   r(   r   r)   s         r   test_multiple_results_rustrI   z   s[    UAIEUAIE%(IiUCGFAYF	  r   c                  <   \        R 4      w  rp\        V\        \        ,           \        ,          4      p\        V \        \        ,
          \        ,          4      p\        V^\        ,          4      pRW4V.3p\        VRRRR7      w  pV^,          pRp	W8X  g   Q hR# )A,B,Cr   r    Fr   zfn test(x: f64, y: f64, z: f64) -> (f64, f64, f64) {
    let C = z*(x + y);
    let A = z*(x - y);
    let B = 2*x;
    (C, A, B)
}
Nr   r
   r#   r$   r%   r   
ABCrG   rH   expr3r'   r(   r   r)   s
             r   test_results_named_unorderedrR      s    gGA!QQ	"EQQ	"EQ!E%./IiUCGFAYF	  r   c            	         \        R 4      w  rp\        V\        \        ,           \        ,          4      p\        V \        \        ,
          \        ,          4      p\        V^\        ,          4      pRW4V.3p\        VRRR\        \        \        3R7      pV^ ,          ^ ,          R8X  g   Q hV^ ,          ^,          pRp	W8X  g   Q hR# )rK   r   r    Fr   r   rB   r!   zfn test(x: f64, z: f64, y: f64) -> (f64, f64, f64) {
    let C = z*(x + y);
    let A = z*(x - y);
    let B = 2*x;
    (C, A, B)
}
NrL   rM   s
             r   test_results_named_orderedrU      s    gGA!QQ	"EQQ	"EQ!E%./IYuE()1ay2F!9Q<9$$$AYq\F	  r   c                     ^ RI Hp HpHp RV! \        4      V ! \
        4      ,           V! \        4      ,           ^,          P                  4       V ! V ! V ! V ! V ! V ! V ! V ! \        \
        ,           \        ,           4      4      4      4      4      4      4      4      .3p\        VRRRR7      pV^ ,          ^ ,          R8X  g   Q hV^ ,          ^,          pRpWV8X  g   Q hR# )	r   )cossintantestlongr    Fr   ztestlong.rsa  fn testlong(x: f64, y: f64, z: f64) -> (f64, f64) {
    let out1 = x.sin().powi(3) + 3*x.sin().powi(2)*y.cos() + 3*x.sin().powi(2)*z.tan() + 3*x.sin()*y.cos().powi(2) + 6*x.sin()*y.cos()*z.tan() + 3*x.sin()*z.tan().powi(2) + y.cos().powi(3) + 3*y.cos().powi(2)*z.tan() + 3*y.cos()*z.tan().powi(2) + z.tan().powi(3);
    let out2 = (x + y + z).cos().cos().cos().cos().cos().cos().cos().cos();
    (out1, out2)
}
N)	(sympy.functions.elementary.trigonometricrW   rX   rY   r#   r$   r%   expandr   )rW   rX   rY   r'   r(   r   r)   s          r   test_complicated_rs_codegenr]      s    HHAQ#a&(1,446CCCAEAI$7 89:;<=I YuEBF!9Q<=(((AYq\F		  r   c                  >   ^ RI Hp Hp \        R4      pRV ! ^\        ,          4      \        \        V! \        4      4      V ! \        4      \        W!! ^\        ,          4      4      .3p\        VRRRR7      w  pV^ ,          R8X  g   Q hV^,          pRpWV8X  g   Q hR	# )
r   )rW   rX   afoor    Fr   foo.rszfn foo(x: f64) -> (f64, f64, f64, f64) {
    let out1 = (2*x).cos();
    let y = x.sin();
    let out3 = x.cos();
    let a = (2*x).sin();
    (out1, y, out3, a)
}
N)r[   rW   rX   r   r#   r
   r$   r   )rW   rX   r_   r'   r(   r   r)   s          r   test_output_arg_mixed_unorderedrb      s    CAQqS8As1v#6ACPQRSPSH@UVWIiUCGF!9   AYF	  r   c                      \        ^ \        R8  3\        ^,          \        ^8*  3\        ) ^,           \        ^8  3R	RR7      p RV 3p\        VRRRR7      w  pV^,          pRpW48X  g   Q hR# )
r   F)evaluatepwtestr    r   zfn pwtest(x: f64) -> f64 {
    let out1 = if (x < -1.0) {
        0
    } else if (x <= 1.0) {
        x.powi(2)
    } else if (x > 1.0) {
        2 - x
    } else {
        1
    };
    out1
}
N   Tr   r#   r   pwr'   r(   r   r)   s        r   test_piecewise_rl      ss    	Aq2v;AqAv!Aq1uySX	YB2IiUCGFAYF	  r   c                      \        ^ \        R8  3\        ^,          \        ^8*  3\        ) ^,           \        ^8  3R	4      p RV 3p\        VRRRRR7      w  pV^,          pRpW48X  g   Q hR# )
r   Tre   r    Fr=   zfn pwtest(x: f64) -> f64 {
    let out1 = if (x < -1) { 0 } else if (x <= 1) { x.powi(2) } else if (x > 1) { -x + 2 } else { 1 };
    out1
}
Nrf   rg   ri   rj   s        r   test_piecewise_inlinern      sw     
Aq2v;AqAv!Aq1uy	IB2IiU!#GFAYF	  r   c                      R ^\         ,          ^\        ,          .3R\        ^,          ^\        ,          .3.p \        V RRRR7      pV^ ,          ^ ,          R8X  g   Q hV^ ,          ^,          pRpW#8X  g   Q hR# )r`   barr    Fr   ra   zfn foo(x: f64, y: f64) -> (f64, f64) {
    let out1 = 2*x;
    let out2 = 3*y;
    (out1, out2)
}
fn bar(y: f64) -> (f64, f64) {
    let out1 = y.powi(2);
    let out2 = 4*y;
    (out1, out2)
}
Nr#   r$   r   r&   s       r   test_multifcns_per_filerr     sy    1Q3!*%1ac{';=IYuEBF!9Q<8###AYq\F		  r   c                  t   R ^\         ,          ^\        ,          .3R\        ^,          ^\        ,          .3.p \        V RRRR7      pV^ ,          ^ ,          R8X  g   Q hV^ ,          ^,          pR\        P                  ,          pVP                  ^L4      P                  4       pRR	V/,          pW%8X  g   Q hR
# )r`   rp   r    TFr   ra   r,   aZ  /*
 *%(version_line)s
 *
 *              See http://www.sympy.org/ for more information.
 *
 *                       This file is part of 'project'
 */
fn foo(x: f64, y: f64) -> (f64, f64) {
    let out1 = 2*x;
    let out2 = 3*y;
    (out1, out2)
}
fn bar(y: f64) -> (f64, f64) {
    let out1 = y.powi(2);
    let out2 = 4*y;
    (out1, out2)
}
r-   N)r#   r$   r   r.   r/   r0   r1   r2   s         r    test_multifcns_per_file_w_headerrt     s    1Q3!*%1ac{';=IYt5AF!9Q<8###AYq\F053D3DDK%%b)002L	" 
&%'H& r   c                      R ^\         ,          ^\        ,          .3R\        ^,          ^\        ,          .3.p \        V RRRRR7      w  pV^ ,          R8X  g   Q hR# )r`   rp   r    bazF)prefixr   r   zbaz.rsNrq   )r'   r(   s     r   test_filename_match_prefixrx   9  sW    1Q3!*%1ac{';=Iie "GF!9   r   c                      \        \        \        ^,          4      p RV 3p\        VRRRR7      w  pV^,          pRpW48X  g   Q hR# )   mysqrr    Fr   z9fn mysqr(x: f64) -> f64 {
    let x = x.powi(2);
    x
}
N)r
   r#   r   r6   s        r   test_InOutArgumentr|   @  sN    Aq!tD$IiUCGFAYF	  r   c                  T   \        \        \        ^,          \        ,           4      p RV 3p\        VRRR\        \        3R7      w  pV^,          pRpW48X  g   Q h\        \        \        ^,          \        ,           4      p RV 3p\        VRRRR7      w  pV^,          pRpW48X  g   Q hR# )rz   r   r    FrT   zDfn test(x: f64, y: f64) -> f64 {
    let x = x.powi(2) + y;
    x
}
r   N)r
   r#   r$   r   r6   s        r   test_InOutArgument_orderr~   N  s    Aq!tax DIi!aU<GFAYF	  Aq!tax DIiUCGFAYF	  r   c                      \        R 4      p RV ! \        4      P                  \        4      \        P                  .3p\        VRRRR7      w  pV^,          pRpW48X  g   Q hR# )fr   r    Fr   zfn test(x: f64) -> (f64, f64) {
    // unsupported: Derivative(f(x), x)
    // unsupported: zoo
    let out1 = Derivative(f(x), x);
    let out2 = zoo;
    (out1, out2)
}
N)r	   r#   diffr   ComplexInfinityr   )r   r'   r(   r   r)   s        r   test_not_supportedr   j  s_    A!A$))A,(9(9:;IiUCGFAYF	  r   c            	          \        R 4      w  rr#\        RW,          3RRRV3R7      pV^ ,          ^,          pRpWV8X  g   Q h\        RW,          V,           3RRRW3W#3R7      pV^ ,          ^,          pRpWV8X  g   Q hR# )	zx y z tr   r    F)r   r   global_varsz5fn f(x: f64) -> f64 {
    let out1 = x*y;
    out1
}
)r   r   rB   r   zAfn f(x: f64, y: f64) -> f64 {
    let out1 = x*y + z;
    out1
}
N)r   r   )r#   r$   r%   tr(   r   r)   s          r   test_global_vars_rustr   {  s    #JA!c13ZU"#'FAYq\F	  c13q5\6%u()vA6CFAYq\F	  r   ),ior   
sympy.corer   r   r   r   r   r	   sympy.core.relationalr
   $sympy.functions.elementary.piecewiser   sympy.utilities.codegenr   r   r   sympy.testing.pytestr   r.   r#   r$   r%   r   r*   r4   r8   r;   r?   rE   rI   rR   rU   r]   rb   rl   rn   rr   rt   rx   r|   r~   r   r    r   r   <module>r      s     D D * : F F &  '
1a.  $ "(*0(,  "(:!8"r   