ó
¡¼™\c           @   sx  d  d l  Z  d  d l Z d  d l Z d  d l  m Z m Z 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 d	 ƒZ e d
 d d ƒZ e d d i d g d 6ƒZ e Z e r$y e e d ƒ d d ƒ Wn  e e e f k
 re Z q$Xe Z n  e d ƒ \ Z Z Z e d d e ƒ\ Z Z Z e d 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$ „  Z/ d% „  Z0 d& „  Z1 d' „  Z2 d( „  Z3 d) „  Z4 d* „  Z5 d+ „  Z6 d, „  Z7 d- „  Z8 d. „  Z9 d/ „  Z: d0 „  Z; d1 „  Z< d S(2   iÿÿÿÿN(   t   symbolst   Eqt   Mod(   t   import_module(   t   IndexedBaset   Idx(   t   autowrapt   ufuncifyt   CodeWrapError(   t   skipt   numpyt   min_module_versions   1.6.1t   Cythons   0.15.1s
   numpy.f2pyt   __import__kwargst   f2pyt   fromlistt   xt   f95s   a b cs   n m dt   integers   A B Ct   clst   it   jt   kc         C   s[   i t  d 6t d 6t d 6} | |  rI |  d k rE t rE t d ƒ n  t St d |  ƒ d S(   s]   
    Return True if module exists, otherwise run skip().

    module should be a string.
    R
   R   R   s   Couldn't run f2py.s   Couldn't import %s.N(   R
   R   R   t	   f2pyworksR	   t   True(   t   modulet   modnames(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt
   has_module   s    	
c         C   sˆ   t  t t t d j ƒ  |  | ƒ } t  t t t d j ƒ  |  | ƒ } | d d d ƒ d k sf t ‚ | d d d ƒ d k s„ t ‚ d  S(   Ni   i   i   iþÿÿÿg      ð¿g      ð?(   R   t   at   bt   ct   expandt   AssertionError(   t   languaget   backendt   ft   g(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_autowrap_twice4   s    $$c         C   sK   t  d ƒ t t t t f |  | ƒ } | t j d ƒ ƒ d k sG t ‚ d  S(   NR
   id   (   R   R   t   AR   R
   t   eyeR    (   R!   R"   t   trace(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_autowrap_trace=   s    
c         C   sÇ   t  d ƒ t d d t ƒ\ } } t | t t t t f | t ƒ } t | |  | ƒ } t j	 j
 d d ƒ } t j	 j
 d ƒ } t j | | ƒ } t j t j | | | | ƒ ƒ ƒ d k  sÃ t ‚ d  S(   NR
   s   x yR   i
   i   g‚vIhÂ%<=(   R   R    R   R   R   R&   R   R   R
   t   randomt   randt   dott   sumt   absR    (   R!   R"   R   t   yt   exprt   mvt   M(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_autowrap_matrix_vectorC   s    
%c         C   s¾   t  d ƒ t t t t f t t t f t t t f ƒ } t | |  | ƒ } t	 j
 j d d ƒ } t	 j
 j d d ƒ } t	 j | | ƒ } t	 j t	 j | | | | ƒ ƒ ƒ d k  sº t ‚ d  S(   NR
   i
   i   i   g‚vIhÂ%<=(   R   R   t   CR   R   R&   R   t   BR   R
   R*   R+   R,   R-   R.   R    (   R!   R"   R0   t   matmatt   M1t   M2t   M3(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_autowrap_matrix_matrixP   s    
1c   	      C   sú   t  d ƒ t d ƒ \ } } } t | | | g | | | d | ƒ} t | | | g | | | d | ƒ} t j d d d ƒ } t j d d d ƒ } t j d	 d
 d ƒ } | | | } t j j | | | | ƒ | ƒ t j j | | | | ƒ | ƒ d  S(   NR
   s   a b cR"   iþÿÿÿi   i2   iûÿÿÿi   iÿÿÿÿi   (   R   R    R   R
   t   linspacet   testingt   assert_allclose(	   R!   R"   R   R   R   t   fabct   facbt   gridt   expected(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_ufuncify\   s    
&&c         C   sq  t  t t d } t j ƒ  } t | |  | d | d d t  t t t  t t f f ƒ} | d d d ƒ d k st t ‚ xö t j | ƒ D]å } | j	 d ƒ r„ | j
 d ƒ r„ t | d | ƒ } | j ƒ  } | d	 d
 k sÞ t ‚ d t j | d k sû t ‚ | d d d d d d d  | d  d d d d d d d d d d d d d d d d d d d g k sit ‚ q„ q„ Wd  S(!   Ni   t   tempdirt   helperst   helperi   t   wrapped_code_s   .ct   /i    sP   /******************************************************************************
s   Code generated with sympy i   sP    *                                                                            *
sP    *              See http://www.sympy.org/ for more information.               *
sP    *                      This file is part of 'autowrap'                       *
sQ    ******************************************************************************/
s	   #include t   "iÿÿÿÿs   h"s   
s   #include <math.h>
s.   double helper(double a, double b, double c) {
s      double helper_result;
s      helper_result = a - b + c;
s      return helper_result;
s   }
s0   double autofunc(double a, double b, double c) {
s      double autofunc_result;
s/      autofunc_result = pow(helper(a, b, c), 13);
s      return autofunc_result;
s
   #include "(   R   R   R   t   tempfilet   mkdtempR   R    t   ost   listdirt
   startswitht   endswitht   opent	   readlinest   sympyt   __version__(   R!   R"   R0   t   tmpR#   t   filet   filt   lines(    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_issue_10274i   sF    #c   
      C   s)  t  d ƒ \ } } } } } | | | | | d } d } t | |  | d | | | | | f d	 d
 | | | | | | f f ƒ}	 t j j |	 d d d d d ƒ | ƒ t | |  | d | | | | | f d	 d
 | | | | f f d | | | | f f f ƒ}	 t j j |	 d d d d d ƒ | ƒ d  S(   Ns   a, b, c, d, ei   g      ð?g       @g      @g      @g      @t   argsRD   t   f1i   i   i   i   i   t   f2g      ð¿g       @g       Àg      @g    ÓS8A(   R    R   R
   R<   R=   (
   R!   R"   R   R   R   t   dt   eR0   t   exp_resR#   (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   runtest_issue_15337‘   s    $#%$5c          C   s,  t  d ƒ t d ƒ \ }  } t |  d ƒ t | d ƒ } t | d |  | g d d ƒ} t | j i d |  6d	 | 6ƒ j ƒ  ƒ } t | d d	 ƒ | ƒ d
 k  s¤ t ‚ t d d t	 ƒ\ }  } t |  d ƒ t | d ƒ } t | d |  | g d d ƒ} | d d ƒ | j i d |  6d | 6ƒ k s(t ‚ d  S(   NR   s   x, yg      @g       ÀRX   R!   t   F95g      @gš™™™™™@g›+¡†›„=R   i   iþÿÿÿi   (
   R   R    R   R   t   floatt   xreplacet   evalfR.   R    R   (   R   R/   R0   R#   R]   (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_issue_15230¥   s    
)%c           C   s   t  d ƒ t d d ƒ d  S(   NR   R   (   R   R%   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_wrap_twice_f95_f2pyº   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   R   (   R   R)   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_autowrap_trace_f95_f2py¿   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   R   (   R   R3   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt$   test_autowrap_matrix_vector_f95_f2pyÄ   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   R   (   R   R:   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt$   test_autowrap_matrix_matrix_f95_f2pyÉ   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   R   (   R   RB   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_ufuncify_f95_f2pyÎ   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   R   (   R   R^   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_issue_15337_f95_f2pyÓ   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   R4   t   cython(   R   R%   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_wrap_twice_c_cythonÚ   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   t   C99Rj   (   R   R)   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_autowrap_trace_C_Cythonß   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   Rl   Rj   (   R   R3   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt$   test_autowrap_matrix_vector_C_cythonä   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   Rl   Rj   (   R   R:   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt$   test_autowrap_matrix_matrix_C_cythoné   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   Rl   Rj   (   R   RB   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_ufuncify_C_Cythonî   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   t   C89Rj   (   R   RW   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_issue_10274_C_cythonó   s    
c           C   s   t  d ƒ t d d ƒ d  S(   NR   Rq   Rj   (   R   R^   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_issue_15337_C_cythonø   s    
c       	   C   s£  t  d ƒ d d l m }  d d l m } d d l m } d d l m } d | f d „  ƒ  Y} | ƒ  } | d	 | ƒ } | j	 j
 d
 ƒ |  t } d } t j ƒ  }	 t t j j |	 d ƒ d ƒ j d ƒ t | d d d |	 d | ƒ}
 |
 d ƒ d k sÿ t ‚ x t j |	 ƒ D]Œ } | j d ƒ r| j d ƒ rt t j j |	 | ƒ ƒ H } | j ƒ  } | | j d d ƒ } d j | d ƒ | k s’t ‚ Wd  QXqqWd  S(   NR   iÿÿÿÿ(   t   pi(   t
   C99CodeGen(   t   C99CodePrinter(   t   expt	   PiPrinterc           B   s   e  Z d  „  Z RS(   c         S   s   d S(   Nt   S_PI(    (   t   selfR0   (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt	   _print_Pi  s    (   t   __name__t
   __module__R{   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyRx     s   t   printers   #include "shortpi.h"s©   #include "%s"
#include <math.h>
#include "shortpi.h"

double autofunc(double a) {

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

}
s	   shortpi.ht   ws   #define S_PI 3.14R"   Rj   RC   t   code_gengÍÌÌÌÌÌ@g…ëQ¸	@t   wrapped_codes   .cs   .ht    i   gÇK7‰A`*@(   R   RQ   Rt   t   sympy.utilities.codegenRu   t   sympy.printing.ccodeRv   t&   sympy.functions.elementary.exponentialRw   t   preprocessor_statementst   appendR   RI   RJ   RO   RK   t   patht   joint   writeR   R    RL   RM   RN   RP   t   replace(   Rt   Ru   Rv   Rw   Rx   R~   t   genR0   RA   t   tmpdirt   funct   filenameR#   RV   (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_autowrap_custom_printerý   s*    
	
%c           C   s   t  d ƒ t d d ƒ d  S(   NR   Rl   R
   (   R   RB   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   test_ufuncify_numpy0  s    
(=   RQ   RI   RK   R    R   R   t   sympy.externalR   t   sympy.tensorR   R   t   sympy.utilities.autowrapR   R   R   t   sympy.utilities.pytestR	   R
   R   R   t   FalseR   t   ImportErrort   OSErrorR   R   R   R   t   nt   mR[   R&   R5   R4   R   R   R   R   R%   R)   R3   R:   RB   RW   R^   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rk   Rm   Rn   Ro   Rp   Rr   Rs   R   R‘   (    (    (    sA   lib/python2.7/site-packages/sympy/external/tests/test_autowrap.pyt   <module>   s^   
									(																3