
    \hE                     |   S SK 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  S SKJrJrJr  S SKJr  S SKJr  S S	Kr\" S
5      u  rrrS rS rS rS rS r \S 5       r!S r"S r#S r$S r%S r&S r'S r(\S 5       r)S r*S r+S r,S r-S r.S r/S r0S  r1S! r2S" r3S# r4S$ r5S% r6S& r7S' r8S( r9S) r:S* r;g	)+    )StringIO)SsymbolsEqpiCatalan
EulerGammaFunction)Equality)	Piecewise)MatrixMatrixSymbol)OctaveCodeGencodegenmake_routine)raises)XFAILNzx,y,zc                      [        5       n [        5       nU R                  / USSSS9  UR                  5       nUS:X  d   eg )NfileFheaderempty )r   r   dump_mgetvalue)code_genoutputsources      a/var/www/auris/envauris/lib/python3.13/site-packages/sympy/utilities/tests/test_codegen_octave.pytest_empty_m_coder       s>    HZFOOBuEOB__FR<<    c                  ~    S[         [        -   [        -  4n [        U SSSS9u  nUS   S:X  d   eUS   nSnX#:X  d   eg )	NtestOctaveFr   r   test.m   z7function out1 = test(x, y, z)
  out1 = z.*(x + y);
end
xyzr   	name_exprresultr   expecteds       r   test_m_simple_coder/      sY    !a%#Ii%uEGF!9   AYF	 
 r!   c                      S[         [        -   [        -  4n [        U SSSS9u  nUS   S:X  d   eUS   nS	[        R
                  -   S
-   nX#:X  d   eg )Nr#   r$   TFr   r   r%   r&   z^function out1 = test(x, y, z)
  %TEST  Autogenerated by SymPy
  %   Code generated with SymPy z}
  %
  %   See http://www.sympy.org/ for more information.
  %
  %   This file is part of 'project'
  out1 = z.*(x + y);
end
)r(   r)   r*   r   sympy__version__r+   s       r   test_m_simple_code_with_headerr3   %   sr    !a%#Ii$eDGF!9   AYF	+-2->->	?B	  r!   c                  z    [        [        [        [        -   5      n SU 4n[	        USSSS9u  nUS   nSnX4:X  d   eg )Nr#   r$   Fr   r&   z)function z = test(x, y)
  z = x + y;
end
)r   r*   r(   r)   r   exprr,   r-   r   r.   s        r   test_m_simple_code_nameoutr7   8   sN    AADIi%uEGFAYF	 
 r!   c                      S[         [        -  4n [        U SSSS9u  nUS   nS[        R                  " S5      -  nX#:X  d   eg )Nr#   r$   Fr   r&   z+function out1 = test()
  out1 = pi^%s;
end
   )r   r   r   evalfr+   s       r   test_m_numbersymbolr;   E   sS    W%Ii%uEGFAYF	 	b	H
 r!   c                  h    S[         [        -  [        /4n [        U SSSSS9u  nUS   nSnX#:X  d   eg )Nr#   r$   Fr   r   inliner&   zfunction [out1, out2] = test()
  Catalan = 0.915965594177219;  % constant
  EulerGamma = 0.5772156649015329;  % constant
  out1 = pi^Catalan;
  out2 = EulerGamma;
end
)r   r   r	   r   r+   s       r   test_m_numbersymbol_no_inliner?   Q   sO     "g+z23Ii%!%1GFAYF	  r!   c                      [         [        -   n [        SU [        [         [        /SS9n[	        5       n[        5       nUR                  U/USSSS9  UR                  5       nSnXE:X  d   eg )Nr#   octave)argument_sequencelanguageFr   z2function out1 = test(z, x, y)
  out1 = x + y;
end
)r(   r)   r   r*   r   r   r   r   )r6   routiner   r   r   r.   s         r   test_m_code_argument_orderrE   c   sk    q5D64Aq!9xXGHZFOOWIvve5OI__F	 
 r!   c                      [         [        -   [        -  n [         [        -
  [        -  nSX/4n[        USSSS9u  nUS   nSnXE:X  d   eg )Nr#   r$   Fr   r&   zTfunction [out1, out2] = test(x, y, z)
  out1 = z.*(x + y);
  out2 = z.*(x - y);
end
r'   )expr1expr2r,   r-   r   r.   s         r   test_multiple_results_mrI   r   s[    UAIEUAIE%(Ii%uEGFAYF	  r!   c                     [        S5      u  pn[        U[        [        -   [        -  5      n[        U [        [        -
  [        -  5      n[        US[        -  5      nSX4U/4n[        USSSS9u  nUS   nSn	X:X  d   eg )	NA,B,C   r#   r$   Fr   r&   zVfunction [C, A, B] = test(x, y, z)
  C = z.*(x + y);
  A = z.*(x - y);
  B = 2*x;
end
r   r   r(   r)   r*   r   
ABCrG   rH   expr3r,   r-   r   r.   s
             r   test_results_named_unorderedrS      s    gGA!QQ	"EQQ	"EQ!E%./Ii%uEGFAYF	  r!   c            	      @   [        S5      u  pn[        U[        [        -   [        -  5      n[        U [        [        -
  [        -  5      n[        US[        -  5      nSX4U/4n[        USSS[        [        [        4S9nUS   S   S:X  d   eUS   S	   nS
n	X:X  d   eg )NrK   rL   r#   r$   Fr   r   rB   r   r%   r&   zVfunction [C, A, B] = test(x, z, y)
  C = z.*(x + y);
  A = z.*(x - y);
  B = 2*x;
end
rM   rN   s
             r   test_results_named_orderedrV      s    gGA!QQ	"EQQ	"EQ!E%./IYe()1ay2F!9Q<8###AYq\F	  r!   c                  h   SSK Jn JnJn  SU" [        5      U " [
        5      -   U" [        5      -   S-  R                  5       U " U " U " U " U " U " U " U " [        [
        -   [        -   5      5      5      5      5      5      5      5      /4n[        USSSS9nUS   S   S:X  d   eUS   S	   nS
nXV:X  d   eg )Nr   )cossintantestlong   r$   Fr   z
testlong.mr&   a5  function [out1, out2] = testlong(x, y, z)
  out1 = sin(x).^3 + 3*sin(x).^2.*cos(y) + 3*sin(x).^2.*tan(z) + 3*sin(x).*cos(y).^2 + 6*sin(x).*cos(y).*tan(z) + 3*sin(x).*tan(z).^2 + cos(y).^3 + 3*cos(y).^2.*tan(z) + 3*cos(y).*tan(z).^2 + tan(z).^3;
  out2 = cos(cos(cos(cos(cos(cos(cos(cos(x + y + z))))))));
end
)	(sympy.functions.elementary.trigonometricrX   rY   rZ   r(   r)   r*   expandr   )rX   rY   rZ   r,   r-   r   r.   s          r   test_complicated_m_codegenr_      s    HHAQ#a&(1,446CCCAEAI$7 89:;<=I YeDF!9Q<<'''AYq\F	  r!   c                     SSK Jn Jn  [        S5      nSU " S[        -  5      [        [        U" [        5      5      U " [        5      [        X!" S[        -  5      5      /4n[        USSSS9u  nUS   S	:X  d   eUS
   nSnXV:X  d   eg )Nr   )rX   rY   afoorL   r$   Fr   foo.mr&   zkfunction [out1, y, out3, a] = foo(x)
  out1 = cos(2*x);
  y = sin(x);
  out3 = cos(x);
  a = sin(2*x);
end
)r]   rX   rY   r   r(   r   r)   r   )rX   rY   ra   r,   r-   r   r.   s          r   !test_m_output_arg_mixed_unorderedrd      s    CAQqS8As1v#6ACPQRSPSH@UVWIi%uEGF!9AYF	  r!   c                      [        S[        S:  4[        S-  [        S:*  4[        * S-   [        S:  4SSS9n SU 4n[        US	SSS
9u  nUS   nSnX4:X  d   eg )Nr   rL   r&   r&   TFevaluatepwtestr$   r   zfunction out1 = pwtest(x)
  out1 = ((x < -1).*(0) + (~(x < -1)).*( ...
  (x <= 1).*(x.^2) + (~(x <= 1)).*( ...
  (x > 1).*(2 - x) + (~(x > 1)).*(1))));
end
r   r(   r   pwr,   r-   r   r.   s        r   test_m_piecewise_rn      ss    	Aq2v;AqAv!Aq1uySX	YB2Ii%uEGFAYF	  r!   c                      [        S[        S:  4[        S-  [        S:*  4[        * S-   [        S:  4S5      n SU 4n[        USSSSS	9u  nUS   nS
nX4:X  d   eg )Nr   rf   rL   r&   rg   rj   r$   Fr=   zfunction out1 = pwtest(x)
  if (x < -1)
    out1 = 0;
  elseif (x <= 1)
    out1 = x.^2;
  elseif (x > 1)
    out1 = -x + 2;
  else
    out1 = 1;
  end
end
rk   rl   s        r   test_m_piecewise_no_inlinerp      sw     
Aq2v;AqAv!Aq1uy	IB2Ii%u"$GFAYF
	  r!   c                      SS[         -  S[        -  /4S[        S-  S[        -  /4/n [        U SSSS9nUS	   S	   S
:X  d   eUS	   S   nSnX#:X  d   eg )Nrb   rL   r\   bar   r$   Fr   r   rc   r&   zfunction [out1, out2] = foo(x, y)
  out1 = 2*x;
  out2 = 3*y;
end
function [out1, out2] = bar(y)
  out1 = y.^2;
  out2 = 4*y;
end
)r(   r)   r   r+   s       r   test_m_multifcns_per_filert      sy    1Q3!*%1ac{';=IYeDF!9Q<7"""AYq\F	  r!   c                      SS[         -  S[        -  /4S[        S-  S[        -  /4/n [        U SSSS	9nUS
   S
   S:X  d   eUS
   S   nS[        R                  -   S-   nX#:X  d   eg )Nrb   rL   r\   rr   rs   r$   TFr   r   rc   r&   zafunction [out1, out2] = foo(x, y)
  %FOO  Autogenerated by SymPy
  %   Code generated with SymPy z
  %
  %   See http://www.sympy.org/ for more information.
  %
  %   This file is part of 'project'
  out1 = 2*x;
  out2 = 3*y;
end
function [out1, out2] = bar(y)
  out1 = y.^2;
  out2 = 4*y;
end
)r(   r)   r   r1   r2   r+   s       r   "test_m_multifcns_per_file_w_headerrv   	  s    1Q3!*%1ac{';=IYUCF!9Q<7"""AYq\F	+-2->->	?B	   r!   c                  ~   ^  SS[         -  S[        -  /4S[        S-  S[        -  /4/m [        [        U 4S j5        g )Nrb   rL   r\   rr   rs   c                     > [        T SSSSS9$ )Nr$   rr   F)prefixr   r   )r   r,   s   r   <lambda>1test_m_filename_match_first_fcn.<locals>.<lambda>#  s    wy uE Kr!   )r(   r)   r   
ValueErrorrz   s   @r   test_m_filename_match_first_fcnr~   !  s@    1Q3!*%1ac{';=I
: K Lr!   c                      [        [        S[        -  [        [        -  //5      n S[        [        SSS5      U 5      4n[        USSSS9nUS	   S	   S
:X  d   eUS	   S   nSnX4:X  d   eg )NrL   r#   myout1r&   r\   r$   Fr   r   r%   =function myout1 = test(x, y, z)
  myout1 = [x 2*y pi*z];
end
)r   r(   r)   r   r*   r   r   r   )e2r,   r-   r   r.   s        r   test_m_matrix_namedr   '  s    	!QqS"Q$ 	!B,xA">CDIYeDF!9Q<8###AYq\F	 
 r!   c                      [        SSS5      n [        [        S[        -  [        [
        -  //5      nS[        XSS94n[        USSSS	9u  nUS   nS
nXE:X  d   eg )Nr   r&   r\   rL   r#   Frh   r$   r   r   )r   r   r(   r)   r   r*   r   r   )r   r   r,   r-   r   r.   s         r   test_m_matrix_named_matsymr   5  so    (Aq)F	!QqS"Q$ 	!B&u=>Ii%uEGFAYF	 
 r!   c                      [        [        [        [        -   S//5      n SU 4n[        USSSS9u  nUS   nSnX4:X  d   eg )Nr\   r#   r$   Fr   r&   z5function out1 = test(x, y)
  out1 = [x x + y 3];
end
)r   r(   r)   r   r5   s        r   test_m_matrix_output_autonamer   C  sT    AqsA;- DIi%uEGFAYF	 
 r!   c                     [         [        -   n [        S[         -  S[        -  S[        -  //5      n[        [         /[        /[        //5      n[        [         [        /[        S//5      nSXX#44n[	        USSSS9u  nUS   nSnXg:X  d   eg )	NrL      r#   r$   Fr   r&   zfunction [out1, out2, out3, out4] = test(x, y, z)
  out1 = x + y;
  out2 = [2*x 2*y 2*z];
  out3 = [x; y; z];
  out4 = [x y; z 16];
end
)r(   r)   r   r*   r   )e1r   e3e4r,   r-   r   r.   s           r   test_m_matrix_output_autoname_2r   P  s    
a%B	!A#qsAaC!	"B	!qcA3	 B	!Q!R!	"B"")*Ii%uEGFAYF	  r!   c            	      8   [        S5      u  p[        SSS5      n[        U[        [        -   [
        -  5      n[        U[        SS[        //5      5      n[        U S[        -  5      nSX4U/4n[        USSS[        [
        [        4S	9u  nUS   nS
n	X:X  d   eg )NzB,CrO   r&   r\   rL   r#   r$   FrU   zSfunction [C, A, B] = test(x, z, y)
  C = z.*(x + y);
  A = [1 2 x];
  B = 2*x;
end
)r   r   r   r(   r)   r*   r   r   )
rP   rQ   rO   rG   rH   rR   r,   r-   r   r.   s
             r   #test_m_results_matrix_named_orderedr   c  s    5>DAS!QAQQ	"EQAq	{+,EQ!E%./Ii%u()1ay2GFAYF	  r!   c            	         [        SSS5      n [        SSS5      n[        SSS5      n[        SSS5      nS[        XS	S S 24   5      [        X SS S 24   5      [        X0S S 2S4   5      /4n[        US
SSS9u  nUS   nSnXg:X  d   eg )NrO   rL   r\   rP   r&   rQ   Dr#   r   r$   Fr   zNfunction [B, C, D] = test(A)
  B = A(1, :);
  C = A(2, :);
  D = A(:, 3);
end
r   r   r   )rO   rP   rQ   r   r,   r-   r   r.   s           r   test_m_matrixsymbol_slicer   w  s    S!QAS!QAS!QAS!QA(11g."11g."11g.0 1I i%uEGFAYF	  r!   c            	          [        SSS5      n [        SSS5      n[        SSS5      nS[        XSS2SS24   5      [        X SS2S	S24   5      /4n[        US
SSS9u  nUS	   nSnXV:X  d   eg )NrO   r\   rs   rP   rL   rQ   r#   r   r&   r$   Fr   zDfunction [B, C] = test(A)
  B = A(1:2, 1:2);
  C = A(1:2, 2:3);
end
r   rO   rP   rQ   r,   r-   r   r.   s          r   test_m_matrixsymbol_slice2r     s    S!QAS!QAS!QA(1!QqSk2"1!QqSk24 5Ii%uEGFAYF	  r!   c            
          [        SSS5      n [        SSS5      n[        SSS5      nS[        XS	S 2S
S S24   5      [        X S S S2S S S24   5      /4n[        USSSS9u  nUS
   nSnXV:X  d   eg )NrO         rP   rL   rQ   rs   r#      r&   r\   r$   Fr   zRfunction [B, C] = test(A)
  B = A(7:end, 2:3:end);
  C = A(1:2:end, 1:3:end);
end
r   r   s          r   test_m_matrixsymbol_slice3r     s    S!QAS!QAS!QA(1ADqDk2"1!SqSk24 5Ii%uEGFAYF	  r!   c                      [        SSS5      n [        SSS5      nS[        XSS S 24   5      U SS S 24   U S S 2S4   U S S 2S4   /4n[        USS	S	S
9u  nUS   nSnXE:X  d   eg )NrO   rL   r\   rP   r&   r#   r   r$   Fr   zrfunction [B, out2, out3, out4] = test(A)
  B = A(1, :);
  out2 = A(2, :);
  out3 = A(:, 1);
  out4 = A(:, 2);
end
r   )rO   rP   r,   r-   r   r.   s         r   "test_m_matrixsymbol_slice_autonamer     s    S!QAS!QA(1!f-q1vq1vq1vFGIi%uEGFAYF	  r!   c            	      0   SSK Jn Jn  SSKJn  U" SSS9u  p4U " S5      nU " S5      nU " S	5      nU" S
U5      nU" SU5      n	[        S[        Xx   XXU	4   Xi   -  5      4SSSS9u  n
U
S   nSnXSSU< SU	< S30-  :X  d  XSSU< SU	< S30-  :X  d   eg g )Nr   IndexedBaseIdxr   zn mTintegerrO   r(   r)   ijmat_vec_multr$   Fr   r&   zfunction y = mat_vec_mult(A, m, n, x)
  for i = 1:m
    y(i) = 0;
  end
  for i = 1:m
    for j = 1:n
      y(i) = %(rhs)s + y(i);
    end
  end
end
rhszA(z, z).*x(j)zx(j).*A()sympy.tensorr   r   sympy.core.symbolr   r   r   )r   r   r   nmrO   r(   r)   r   r   r-   r   r.   s                r   test_m_loopsr     s    
 .)5$'DACACACACACA~r!$Q$'=>"%1GFAYF		  %a)C!DDD%a)C!DDDF ED Er!   c                     SSK Jn Jn  SSKJn  U" SSS9u  p4pVU " S5      nU " S5      nU " S	5      n	U" S
U5      n
U" SU5      nU" SU5      nU" SU5      n[        S[        X   XX4   XzXU4   -  5      4SSSS9u  nUS   nSnUU:X  d   eg )Nr   r   r   zn m o pTr   rO   rP   r)   r   r   kltensorthingr$   Fr   r&   zfunction y = tensorthing(A, B, m, n, o, p)
  for i = 1:m
    y(i) = 0;
  end
  for i = 1:m
    for j = 1:n
      for k = 1:o
        for l = 1:p
          y(i) = A(i, j, k, l).*B(j, k, l) + y(i);
        end
      end
    end
  end
end
r   )r   r   r   r   r   oprO   rP   r)   r   r   r   r   r-   r   r.   s                    r   )test_m_tensor_loops_multiple_contractionsr     s    -)D1JA!CACACACACACACA}bqAz!qQJ-/G&HIuE;GFAYF	   Xr!   c                  r    [        [        [        S-  5      n SU 4n[        USSSS9u  nUS   nSnX4:X  d   eg )NrL   mysqrr$   Fr   r&   z&function x = mysqr(x)
  x = x.^2;
end
)r   r(   r   r5   s        r   test_m_InOutArgumentr      sN    Aq!tD$Ii%uEGFAYF	 
 r!   c                     [        [        [        S-  [        -   5      n SU 4n[        USSS[        [        4S9u  nUS   nSnX4:X  d   e[        [        [        S-  [        -   5      n SU 4n[        USSSS9u  nUS   nSnX4:X  d   eg )	NrL   r#   r$   FrU   r&   z,function x = test(x, y)
  x = x.^2 + y;
end
r   )r   r(   r)   r   r5   s        r   test_m_InOutArgument_orderr     s    Aq!tax DIi%!aU<GFAYF	 
 Aq!tax DIi%uEGFAYF	 
 r!   c                      [        S5      n SU " [        5      R                  [        5      [        R                  /4n[        USSSS9u  nUS   nSnX4:X  d   eg )Nfr#   r$   Fr   r&   zfunction [out1, out2] = test(x)
  % unsupported: Derivative(f(x), x)
  % unsupported: zoo
  out1 = Derivative(f(x), x);
  out2 = zoo;
end
)r
   r(   diffr   ComplexInfinityr   )r   r,   r-   r   r.   s        r   test_m_not_supportedr   '  s_    A!A$))A,(9(9:;Ii%uEGFAYF	  r!   c            	          [        S5      u  pp#[        SX-  4SSSU4S9nUS   S   nSnXV:X  d   e[        SX-  U-   4SSSX4X#4S	9nUS   S   nS
nXV:X  d   eg )Nzx y z tr   r$   F)r   r   global_varsr   r&   z3function out1 = f(x)
  global y
  out1 = x.*y;
end
)r   r   rB   r   z<function out1 = f(x, y)
  global t z
  out1 = x.*y + z;
end
)r   r   )r(   r)   r*   tr-   r   r.   s          r   test_global_vars_octaver   7  s    #JA!c13Z%u"#'FAYq\F	  c13q5\8E()vA6CFAYq\F	  r!   )<ior   
sympy.corer   r   r   r   r   r	   r
   sympy.core.relationalr   $sympy.functions.elementary.piecewiser   sympy.matricesr   r   sympy.utilities.codegenr   r   r   sympy.testing.pytestr   r   r1   r(   r)   r*   r    r/   r3   r7   r;   r?   rE   rI   rS   rV   r_   rd   rn   rp   rt   rv   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r   <module>r      s     H H H * : / H H ' &  '
1a
&
	  " &((&  .$0L
&(("""F@D
4 r!   