
    Цi&                        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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& r.S' r/S( r0S) r1S* r2S+ r3S, r4S- r5S. r6S/ r7S0 r8S1 r9S2 r:S3 r;S4 r<S5 r=g! \\\4 a    Sr Nf = f)6    N)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     a/var/www/html/ai-image-ml/venv/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_twicer1   6   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_tracer7   ?   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   r4   r   r	   r   randomranddotsumabs)r-   r.   r   yexprmvMs          r!   runtest_autowrap_matrix_vectorrE   E   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   r9   r:      r;   )r"   r   Cr   r   r4   r   Br	   r   r<   r=   r>   r?   r@   )r-   r.   rB   matmatM1M2M3s          r!   runtest_autowrap_matrix_matrixrN   R   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 rP   zP *                                                                            *
zP *              See http://www.sympy.org/ for more information.               *
zP *                      This file is part of 'autowrap'                       *
zQ ******************************************************************************/
z
#include "rS   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.   rB   tmpr/   filefilliness           r!   runtest_issue_10274rs   k   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)argsr`   r'   rP      r&   r%   f2)r"   r   r	   r   rU   rV   )
r-   r.   r)   r*   r+   derB   exp_resr/   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)rv   r-   g      @g@g+=Tr   rw   r(   rP   )r"   r   r   r	   floatxreplaceevalfr@   )r   rA   rB   r/   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"   r1    r#   r!   test_wrap_twice_f95_f2pyr          v5&)r#   c                  2    [        S5        [        SS5        g r   r"   r7   r   r#   r!   test_autowrap_trace_f95_f2pyr      r   r#   c                  2    [        S5        [        SS5        g r   r"   rE   r   r#   r!   $test_autowrap_matrix_vector_f95_f2pyr          v"5&1r#   c                  2    [        S5        [        SS5        g r   r"   rN   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   rH   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"   rs   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      S5       n	U	R!                  S5        S S 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X{R-                  SS5      -  nSR                  USS  5      U:X  d   e S S S 5        M     g ! , (       d  f       N= f! , (       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   )selfrB   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.hwz#define S_PI 3.14r   )r.   r_   code_geng@gK7A`*@wrapped_coderb   z.h    )r"   sympy.core.numbersr   sympy.utilities.codegenr   sympy.printing.cr   preprocessor_statementsappendr)   re   rf   rk   rg   pathjoinwriter	   rh   ri   rj   rl   replace)r   r   r   r   r   genrB   rZ   tmpdirr/   funcfilenamerr   s                r!   test_autowrap_custom_printerr     s]   x%2/N  kG
W
%C&&'=>6D
	  F	bggll6;/	5	#$ 
6 D(FID9
""" JJv&~..83D3DT3J3Jbggll645#&6&6tT&BBwwuQRy)X555 65 ' 
6	5 65s   F??F
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#   )>rm   re   rg   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mry   r4   rI   rH   r   r   r   r"   r1   r7   rE   rN   r[   rs   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#   r!   <module>r      sb     	  $ % ( ) F F %g':	xH	=\*vh1GH	uf- 	
'
1a
'4
(1a
'{
+1aQKQKQK)*(
6	=
>'T=*2**
*
2
2
$
'*
,
4
4
&
)
)
.6f%C	 ;0 	s   C7 7DD