
    \h&                        S SK r S SKrS SKrS SKJr  S SKJr  S SK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S9r\" SSS9r\" SSS/0S9rSr\(       a   \" \
" S5      SS5        Sr\
" S5      u  rrr\
" SSS9u  rr r!\
" S\S9u  r"r#r$\" S\ 5      r%\" S\5      r&\" S\!5      r'S r(S  r)S! r*S" r+S# r,S$ r-S% r.S& r/S' r0S( r1S) r2S* r3S+ r4S, r5S- r6S. r7S/ r8S0 r9S1 r:S2 r;S3 r<S4 r=S5 r>S6 r?g! \\\4 a    Sr Nf = f)7    N)Path)Mod)Eq)symbols)import_module)IndexedBaseIdx)autowrapufuncifyCodeWrapError)skipnumpyz1.6.1)min_module_versionCythonz0.15.1z
numpy.f2pyfromlistf2py)import_kwargsFxf95Ta b czn m dintegerzA B Cclsijkc                     [         [        [        S.nX   (       a  U S:X  a  [        (       d  [	        S5        g[	        SU -  5        g)zQ
Return True if module exists, otherwise run skip().

module should be a string.
)r   r   r   r   zCouldn't run f2py.TzCouldn't import %s.N)r   r   r   	f2pyworksr   )modulemodnamess     Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/external/tests/test_autowrap.py
has_moduler#   "   s<     &$?HVII%&		'(    c                     [        [        [        -   [        -  S-  R	                  5       X5      n[        [        [        -   [        -  S-  R	                  5       X5      nU" SSS5      S:X  d   eU" SSS5      S:X  d   eg )N         g      g      ?)r
   abcexpand)languagebackendfgs       r"   runtest_autowrap_twicer2   7   sr    AE19q.((*H>AAE19q.((*H>A QA;$QA;#r$   c                     [        S5        [        [        [        [        4   X5      nU" [        R                  S5      5      S:X  d   eg )Nr   d   )r#   r
   Ar   r   eye)r.   r/   traces      r"   runtest_autowrap_tracer8   @   s9    wQq!tWh0E3 C'''r$   c           	         [        S5        [        S[        S9u  p#[        U[           [
        [        [        4   U[           -  5      n[        X@U5      n[        R                  R                  SS5      n[        R                  R                  S5      n[        R                  Xb5      n[        R                  [        R                  X5" Xb5      -
  5      5      S:  d   eg )Nr   zx yr   
      vIh%<=)r#   r   r   r   r   r5   r   r
   r   randomranddotsumabs)r.   r/   r   yexprmvMs          r"   runtest_autowrap_matrix_vectorrF   F   s    w5k*DAadAadGAaDL!D	$'	*B 	"b!A"A		!A99UYYq2a8|,-555r$   c           	         [        S5        [        [        [        [        4   [
        [        [        4   [        [        [        4   -  5      n[        X U5      n[        R                  R                  SS5      n[        R                  R                  SS5      n[        R                  XE5      n[        R                  [        R                  Xc" XE5      -
  5      5      S:  d   eg )Nr   r:   r;      r<   )r#   r   Cr   r   r5   r   Br
   r   r=   r>   r?   r@   rA   )r.   r/   rC   matmatM1M2M3s          r"   runtest_autowrap_matrix_matrixrO   S   s    wa1gqAwqAw'Ddg.F 
		2r	"B			2r	"B	2	B99UYYrF2N234u<<<r$   c                    [        S5        [        S5      u  p#n[        X#U/X#-  U-   US9n[        X$U/X#-  U-   US9n[        R	                  SSS5      n[        R	                  SSS5      n[        R	                  S	S
S5      nXs-  U-   n[        R
                  R                  U" XsU5      U5        [        R
                  R                  U" XtU5      U5        g )Nr   r   )r/   r)      2   r'   r(   )r#   r   r   r   linspacetestingassert_allclose)	r.   r/   r*   r+   r,   fabcfacbgridexpecteds	            r"   runtest_ufuncifyr\   _   s    wgGA!Q1IqsQw8DQ1IqsQw8D>>"a$Dr1b!Ar1b!AvzH	MM!!$t"2H=	MM!!$t"2H=r$   c                    [         [        -
  [        -   S-  n[        R                  " 5       n[        X XS[         [        -
  [        -   [         [        [        44S9nU" SSS5      S:X  d   e[        R                  " U5       H  nUR                  S5      (       a  UR                  S5      (       d  M1  [        US-   U-   5       nUR                  5       nUS   S	:X  d   eS
[        R                  -   US   ;   d   eUSS  SSSSSSUS S -   S-   S-   SSSSSSSSSSSSSSSSS/:X  d   e S S S 5        M     g ! , (       d  f       M  = f)N   helper)tempdirhelpersr(   wrapped_code_.c/r   zP/******************************************************************************
zCode generated with SymPy rQ   zP *                                                                            *
zP *              See http://www.sympy.org/ for more information.               *
zP *                      This file is part of 'autowrap'                       *
zQ ******************************************************************************/
z
#include "rT   zh"
z#include <math.h>
z.double helper(double a, double b, double c) {
z   double helper_result;
z   helper_result = a - b + c;
z   return helper_result;
z}
z0double autofunc(double a, double b, double c) {
z   double autofunc_result;
z/   autofunc_result = pow(helper(a, b, c), 13);
z   return autofunc_result;
)r*   r+   r,   tempfilemkdtempr
   oslistdir
startswithendswithopen	readlinessympy__version__)r.   r/   rC   tmpr0   filefilliness           r"   runtest_issue_10274rt   l   sd   EAID



C"AEAI1ay9	;AQ1:??

300T]]45H5H#)d"#sMMOE8rrrr/%2C2CCuQxOOO9ccccd!D"I-t3d:%A,1,C.B./!   	 $#	   $#s   A&D88
E	c                 l   [        S5        [        S5      u  p#pEnX#-
  U-   U-
  U-   S-  nSn[        XpXX4XV4SX#-
  U-   X#U44S9n	[        R                  R                  U	" SSS	S
S5      U5        [        XpXX4XV4SX#-
  X#44SXE-
  XE444S9n	[        R                  R                  U	" SSS	S
S5      U5        g )Nr   za, b, c, d, er^   g    S8Af1)argsra   r(   rQ      r'   r&   f2)r#   r   r
   r   rV   rW   )
r.   r/   r*   r+   r,   derC   exp_resr0   s
             r"   runtest_issue_15337r}      s    w O,MA!EAIMA"D*G1	A!95	7A	MM!!!Aq!Q"2G<1/$v1FG	IA	MM!!!Aq!Q"2G<r$   c                     [        S5        [        S5      u  p[        U S5      [        US5      -
  n[        X U/SS9n[	        UR                  U SUS05      R                  5       5      n[        U" SS5      U-
  5      S	:  d   e[        SS
S9u  p[        U S5      [        US5      -
  n[        X U/SS9nU" SS5      UR                  U SUS05      :X  d   eg )Nr   zx, yg      @g       F95)rw   r.   g      @g@g+=Tr   rx   r)   rQ   )r#   r   r   r
   floatxreplaceevalfrA   )r   rB   rC   r0   r|   s        r"   test_issue_15230r      s    v6?DAq#;Q%DFU3ADMM1c1c"2399;<Gqc{W$%---64(DAq!9s1bz!DFU3AQ7dmmQ1aL1111r$   c                  2    [        S5        [        SS5        g Nr   r   r#   r2    r$   r"   test_wrap_twice_f95_f2pyr          v5&)r$   c                  2    [        S5        [        SS5        g r   r#   r8   r   r$   r"   test_autowrap_trace_f95_f2pyr      r   r$   c                  2    [        S5        [        SS5        g r   r#   rF   r   r$   r"   $test_autowrap_matrix_vector_f95_f2pyr          v"5&1r$   c                  2    [        S5        [        SS5        g r   r#   rO   r   r$   r"   $test_autowrap_matrix_matrix_f95_f2pyr      r   r$   c                  2    [        S5        [        SS5        g r   r#   r\   r   r$   r"   test_ufuncify_f95_f2pyr      s    vUF#r$   c                  2    [        S5        [        SS5        g r   r#   r}   r   r$   r"   test_issue_15337_f95_f2pyr      s    vv&r$   c                  2    [        S5        [        SS5        g )Nr   rI   cythonr   r   r$   r"   test_wrap_twice_c_cythonr      s    x3)r$   c                  2    [        S5        [        SS5        g Nr   C99r   r   r   r$   r"   test_autowrap_trace_C_Cythonr      s    x5(+r$   c                  2    [        S5        [        SS5        g r   r   r   r$   r"   $test_autowrap_matrix_vector_C_cythonr          x"5(3r$   c                  2    [        S5        [        SS5        g r   r   r   r$   r"   $test_autowrap_matrix_matrix_C_cythonr      r   r$   c                  2    [        S5        [        SS5        g r   r   r   r$   r"   test_ufuncify_C_Cythonr      s    xUH%r$   c                  2    [        S5        [        SS5        g Nr   C89r   )r#   rt   r   r$   r"   test_issue_10274_C_cythonr          xx(r$   c                  2    [        S5        [        SS5        g r   r   r   r$   r"   test_issue_15337_C_cythonr      r   r$   c                  $   [        S5        SSKJn   SSKJn  SSKJn   " S SU5      nU" 5       nU" US9nUR                  R                  S	5        U [        -  nS
n[        R                  " 5       n[        [        R                  R                  US5      5      R!                  S5        [#        USXS9n	U	" S5      S:X  d   e[        R$                  " U5       H  n
U
R'                  S5      (       d  M  U
R)                  S5      (       d  M3  [+        [        R                  R                  X5      5       nUR-                  5       nXzR/                  SS5      -  nSR                  USS  5      U:X  d   e S S S 5        M     g ! , (       d  f       M  = f)Nr   r   )pi)
C99CodeGen)C99CodePrinterc                       \ rS rSrS rSrg)/test_autowrap_custom_printer.<locals>.PiPrinteri
  c                     g)NS_PIr   )selfrC   s     r"   	_print_Pi9test_autowrap_custom_printer.<locals>.PiPrinter._print_Pi  s    r$   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r$   r"   	PiPrinterr   
  s    	r$   r   )printerz#include "shortpi.h"z#include "%s"
#include <math.h>
#include "shortpi.h"

double autofunc(double a) {

   double autofunc_result;
   autofunc_result = S_PI*a;
   return autofunc_result;

}
z	shortpi.hz#define S_PI 3.14r   )r/   r`   code_geng@gK7A`*@wrapped_coderc   z.h    )r#   sympy.core.numbersr   sympy.utilities.codegenr   sympy.printing.cr   preprocessor_statementsappendr*   rf   rg   r   rh   pathjoin
write_textr
   ri   rj   rk   rl   rm   replace)r   r   r   r   r   genrC   r[   tmpdirfuncfilenamer0   rs   s                r"   test_autowrap_custom_printerr     sF   x%2/N  kG
W
%C&&'=>6D
	  Ffk	*+667JKD(FID9
""" JJv&~..83D3DT3J3Jbggll645#&6&6tT&BBwwuQRy)X555 65 '55s   3?F  
F	c                  2    [        S5        [        SS5        g )Nr   r   r   r   r   r$   r"   test_ufuncify_numpyr   5  s     xUG$r$   )@rn   rf   rh   pathlibr   sympy.core.modr   sympy.core.relationalr   sympy.core.symbolr   sympy.externalr   sympy.tensorr   r	   sympy.utilities.autowrapr
   r   r   sympy.testing.pytestr   r   r   r   r   ImportErrorOSErrorr*   r+   r,   nmrz   r5   rJ   rI   r   r   r   r#   r2   r8   rF   rO   r\   rt   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r"   <module>r      se     	   $ % ( ) F F %g':	xH	=\*vh1GH	uf- 	
'
1a
'4
(1a
'{
+1aQKQKQK)*(
6	=
>'T=*2**
*
2
2
$
'*
,
4
4
&
)
)
-6d%A	 ;0 	s   %C= =D
D