
    g&                     h   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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& Z.d' Z/d( Z0d) Z1d* Z2d+ Z3d, Z4d- Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z;d4 Z<d5 Z=dS )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                     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     ^/var/www/html/ai-engine/env/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_twicer1   6   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_tracer7   ?   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   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***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   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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 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   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)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|      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)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??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"   r1    r#   r!   test_wrap_twice_f95_f2pyr      &    v5&)))))r#   c                  D    t          d           t          dd           d S r   r"   r7   r   r#   r!   test_autowrap_trace_f95_f2pyr      r   r#   c                  D    t          d           t          dd           d S r   r"   rE   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"   rN   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   rH   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"   rs   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                     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          5 }	|	                    d           d d d            n# 1 swxY w Y   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   )selfrB   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.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22222//////    N    ikkG
*W
%
%
%C&&'=>>>6D
	  F	bgll6;//	5	5 %	#$$$% % % % % % % % % % % % % % % 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%   -CCC+AG		G	G	c                  D    t          d           t          dd           d S )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      sC     				       $ $ $ $ $ $ % % % % % % ( ( ( ( ( ( ) ) ) ) ) ) ) ) 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 .6f% % % % %s   ,B 
BB