
    Xh&                     t   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZmZmZ d d	lmZ  ed
d          Z edd          Z edddgi          ZdZer*	  e e
d          dd           dZn# eeef$ r dZY nw xY w e
d          \  ZZZ e
dd          \  ZZ Z! e
de          \  Z"Z#Z$ ede           Z% ede          Z& ede!          Z'd Z(d  Z)d! Z*d" Z+d# Z,d$ Z-d% Z.d& Z/d' Z0d( Z1d) Z2d* Z3d+ Z4d, Z5d- Z6d. Z7d/ Z8d0 Z9d1 Z:d2 Z;d3 Z<d4 Z=d5 Z>d6 Z?dS )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                     t           t          t          d}||          r| dk    rt          st	          d           dS t	          d| z             dS )z]
    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     t/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/sympy/external/tests/test_autowrap.py
has_moduler#   "   s^     &$??H VI%&&&t		'(((((    c                 >   t          t          t          z   t          z  dz                                  | |          }t          t          t          z   t          z  dz                                  | |          } |ddd          dk    sJ  |ddd          dk    sJ d S )N         g      g      ?)r
   abcexpand)languagebackendfgs       r"   runtest_autowrap_twicer2   7   s    AE19q.((**Hg>>AAE19q.((**Hg>>A 1QA;;$1QA;;#r$   c                     t          d           t          t          t          t          f         | |          } |t                              d                    dk    sJ d S )Nr   d   )r#   r
   Ar   r   eye)r.   r/   traces      r"   runtest_autowrap_tracer8   @   sT    wQq!tWh00E53  C''''''r$   c           	      6   t          d           t          dt                    \  }}t          |t                   t
          t          t          f         |t                   z            }t          || |          }t          j	        
                    dd          }t          j	        
                    d          }t                              ||          }t                              t                              | |||          z
                      dk     sJ d S )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***DAqadAadGAaDL!!D	$'	*	*B 	"b!!A"A		!QA99UYYq22a88|,,--555555r$   c           	      6   t          d           t          t          t          t          f         t
          t          t          f         t          t          t          f         z            }t          || |          }t          j
                            dd          }t          j
                            dd          }t                              ||          }t                              t                              | |||          z
                      dk     sJ d S )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dHg..F 
		2r	"	"B			2r	"	"B	2r		B99UYYrFF2rNN23344u<<<<<<r$   c                    t          d           t          d          \  }}}t          |||g||z  |z   |          }t          |||g||z  |z   |          }t                              ddd          }t                              ddd          }t                              d	d
d          }||z  |z   }t          j                             ||||          |           t          j                             ||||          |           d S )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GAq!Q1IqsQw888DQ1IqsQw888D>>"a$$Dr1b!!Ar1b!!AAvzH	M!!$$tQ"2"2H===	M!!$$tQ"2"2H=====r$   c                    t           t          z
  t          z   dz  }t          j                    }t          || ||dt           t          z
  t          z   t           t          t          ff          } |ddd          dk    sJ t          j        |          D ]}|                    d          r|	                    d          s-t          |dz   |z             5 }|                                }|d         d	k    sJ d
t          j        z   |d         v sJ |dd          dddddd|d d         z   dz   dz   dddddddddddddddddgk    sJ 	 d d d            n# 1 swxY w Y   d S )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   s   EAID



Cx#"AEAI1ay9	; 	; 	;A1Q1::????
3    00 	T]]45H5H 	#)d"## 	sMMOOE8rrrrr/%2CCuQxOOOO9ccccd!D"I-t3d:%A,1,C.B./!     		 	 	 	 	 	 	 	 	 	 	 	 	 	 		   s   A4EE	E	c                    t          d           t          d          \  }}}}}||z
  |z   |z
  |z   dz  }d}t          || ||||||fd||z
  |z   |||ff          }	t          j                             |	ddd	d
d          |           t          || ||||||fd||z
  ||ffd||z
  ||fff          }	t          j                             |	ddd	d
d          |           d S )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}      s0   w O,,MAq!QEAIMA"D*Gx1aAA	Aq!95	7 	7 	7A	M!!!!Aq!Q"2"2G<<<x1aAQA/$A1v1FG	I 	I 	IA	M!!!!Aq!Q"2"2G<<<<<r$   c                  J   t          d           t          d          \  } }t          | d          t          |d          z
  }t          || |gd          }t	          |                    | d|di                                                    }t           |dd          |z
            d	k     sJ t          dd
          \  } }t          | d          t          |d          z
  }t          || |gd          } |dd          |                    | d|di          k    sJ d S )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??DAqq#;;Q%DQFU333ADMM1c1c"23399;;<<Gqqc{{W$%%----64(((DAqq!99s1bzz!DQFU333A1Q77dmmQ1aL11111111r$   c                  D    t          d           t          dd           d S Nr   r   r#   r2    r$   r"   test_wrap_twice_f95_f2pyr      &    v5&)))))r$   c                  D    t          d           t          dd           d S r   r#   r8   r   r$   r"   test_autowrap_trace_f95_f2pyr      r   r$   c                  D    t          d           t          dd           d S r   r#   rF   r   r$   r"   $test_autowrap_matrix_vector_f95_f2pyr      &    v"5&11111r$   c                  D    t          d           t          dd           d S r   r#   rO   r   r$   r"   $test_autowrap_matrix_matrix_f95_f2pyr      r   r$   c                  D    t          d           t          dd           d S r   r#   r\   r   r$   r"   test_ufuncify_f95_f2pyr      s&    vUF#####r$   c                  D    t          d           t          dd           d S r   r#   r}   r   r$   r"   test_issue_15337_f95_f2pyr      s&    vv&&&&&r$   c                  D    t          d           t          dd           d S )Nr   rI   cythonr   r   r$   r"   test_wrap_twice_c_cythonr      s&    x3)))))r$   c                  D    t          d           t          dd           d S Nr   C99r   r   r   r$   r"   test_autowrap_trace_C_Cythonr      s&    x5(+++++r$   c                  D    t          d           t          dd           d S r   r   r   r$   r"   $test_autowrap_matrix_vector_C_cythonr      &    x"5(33333r$   c                  D    t          d           t          dd           d S r   r   r   r$   r"   $test_autowrap_matrix_matrix_C_cythonr      r   r$   c                  D    t          d           t          dd           d S r   r   r   r$   r"   test_ufuncify_C_Cythonr      s&    xUH%%%%%r$   c                  D    t          d           t          dd           d S Nr   C89r   )r#   rt   r   r$   r"   test_issue_10274_C_cythonr      &    xx(((((r$   c                  D    t          d           t          dd           d S r   r   r   r$   r"   test_issue_15337_C_cythonr      r   r$   c                  x   t          d           ddlm}  ddlm} ddlm}  G d d|          } |            } ||          }|j                            d	           | t          z  }d
}t          j                    }t          t          j                            |d                                        d           t#          |d||          }	 |	d          dk    sJ t          j        |          D ]}
|
                    d          r|
                    d          rt+          t          j                            ||
                    5 }|                                }||
                    dd          z  }d                    |dd                    |k    sJ 	 d d d            n# 1 swxY w Y   d S )Nr   r   )pi)
C99CodeGen)C99CodePrinterc                       e Zd Zd ZdS )/test_autowrap_custom_printer.<locals>.PiPrinterc                     dS )NS_PIr   )selfrC   s     r"   	_print_Piz9test_autowrap_custom_printer.<locals>.PiPrinter._print_Pi  s    6r$   N)__name__
__module____qualname__r   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     s6   x%%%%%%222222//////    N    ikkG
*W
%
%
%C&&'=>>>6D
	  Ffk	*	*++667JKKKD(FSIIID499
"""" Jv&& 6 6~.. 	683D3DT3J3J 	6bgll684455 6#h&6&6tT&B&BBwwuQRRy))X555556 6 6 6 6 6 6 6 6 6 6 6 6 6 66 6s   AF..F2	5F2	c                  D    t          d           t          dd           d S )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      sU     				             $ $ $ $ $ $ % % % % % % ( ( ( ( ( ( ) ) ) ) ) ) ) ) F F F F F F F F F F % % % % % %g':::	xH	=	=	=}\*vh1GHHH	 uf--- 		 ;0   			
 ''

1a
''4
(
(
(1a
''{
+
+
+1aCQKKCQKKCQKK) ) )*  ( ( (
6 
6 
6	= 	= 	=
> 
> 
>' ' 'T= = =*2 2 2** * *
* * *
2 2 2
2 2 2
$ $ $
' ' '* * *
, , ,
4 4 4
4 4 4
& & &
) ) )
) ) )
-6 -6 -6d% % % % %s   2B 
BB