Ticket #15057: trac15057_3.patch

File trac15057_3.patch, 13.1 KB (added by eviatarbach, 8 years ago)
  • sage/functions/exp_integral.py

    # HG changeset patch
    # User Eviatar Bach <eviatarbach@gmail.com>
    # Date 1376766516 25200
    # Node ID f4339ebd937a04ab987204d3355c395b9d8feef7
    # Parent  8c4989a7e8d20a16ad1c464620ee616c4cde719a
    Adding SymPy conversions
    
    diff --git a/sage/functions/exp_integral.py b/sage/functions/exp_integral.py
    a b  
    161161
    162162        EXAMPLES::
    163163
    164             sage: exp_integral_e(1,0)
     164            sage: exp_integral_e(1, 0)
    165165            exp_integral_e(1, 0)
     166            sage: exp_integral_e(1, x)._sympy_()
     167            expint(1, x)
    166168
    167169        """
    168170        BuiltinFunction.__init__(self, "exp_integral_e", nargs=2,
    169171                                 latex_name=r'exp_integral_e',
    170                                  conversions=dict(maxima='expintegral_e'))
     172                                 conversions=dict(maxima='expintegral_e',
     173                                                  sympy='expint'))
    171174
    172175    def _eval_(self, n, z):
    173176        """
     
    306309
    307310            sage: exp_integral_e1(1)
    308311            exp_integral_e1(1)
     312            sage: exp_integral_e1(x)._sympy_()
     313            expint(1, x)
    309314
    310315        """
    311316        BuiltinFunction.__init__(self, "exp_integral_e1", nargs=1,
    312317                                 latex_name=r'exp_integral_e1',
    313                                  conversions=dict(maxima='expintegral_e1'))
     318                                 conversions=dict(maxima='expintegral_e1',
     319                                                  sympy='E1'))
    314320
    315321    def _eval_(self, z):
    316322        """
     
    423429
    424430            sage: log_integral(3)
    425431            log_integral(3)
     432            sage: log_integral(x)._sympy_()
     433            li(x)
    426434
    427435        """
    428436        BuiltinFunction.__init__(self, "log_integral", nargs=1,
    429437                                 latex_name=r'log_integral',
    430                                  conversions=dict(maxima='expintegral_li'))
     438                                 conversions=dict(maxima='expintegral_li',
     439                                                  sympy='li'))
    431440
    432441    def _eval_(self, z):
    433442        """
     
    610619
    611620            sage: log_integral_offset(3)
    612621            log_integral(3) - log_integral(2)
     622            sage: log_integral_offset(x, hold=True)._sympy_()
     623            Li(x)
    613624
    614625        """
    615626        BuiltinFunction.__init__(self, "log_integral_offset", nargs=1,
    616                                  latex_name=r'log_integral_offset')
     627                                 latex_name=r'log_integral_offset',
     628                                 conversions=dict(sympy='Li'))
    617629
    618630    def _eval_(self,z):
    619631        """
     
    780792
    781793            sage: sin_integral(1)
    782794            sin_integral(1)
     795            sage: sin_integral(x)._sympy_()
     796            Si(x)
    783797
    784798        """
    785799        BuiltinFunction.__init__(self, "sin_integral", nargs=1,
    786800                                 latex_name=r'\operatorname{Si}',
    787                                  conversions=dict(maxima='expintegral_si'))
     801                                 conversions=dict(maxima='expintegral_si',
     802                                                  sympy='Si'))
    788803
    789804    def _eval_(self, z):
    790805        """
     
    946961
    947962            sage: cos_integral(1)
    948963            cos_integral(1)
     964            sage: cos_integral(x)._sympy_()
     965            Ci(x)
    949966
    950967        """
    951968        BuiltinFunction.__init__(self, "cos_integral", nargs=1,
    952969                                 latex_name=r'\operatorname{Ci}',
    953                                  conversions=dict(maxima='expintegral_ci'))
     970                                 conversions=dict(maxima='expintegral_ci',
     971                                                  sympy='Ci'))
    954972
    955973    def _eval_(self, z):
    956974        """
     
    10951113
    10961114            sage: sinh_integral(1)
    10971115            sinh_integral(1)
     1116            sage: sinh_integral(x)._sympy_()
     1117            Shi(x)
    10981118
    10991119        """
    11001120        BuiltinFunction.__init__(self, "sinh_integral", nargs=1,
    11011121                                 latex_name=r'\operatorname{Shi}',
    1102                                  conversions=dict(maxima='expintegral_shi'))
     1122                                 conversions=dict(maxima='expintegral_shi',
     1123                                                  sympy='Shi'))
    11031124
    11041125    def _eval_(self, z):
    11051126        """
     
    12391260
    12401261            sage: cosh_integral(1)
    12411262            cosh_integral(1)
     1263            sage: cosh_integral(x)._sympy_()
     1264            Chi(x)
    12421265
    12431266        """
    12441267        BuiltinFunction.__init__(self, "cosh_integral", nargs=1,
    12451268                                 latex_name=r'\operatorname{Chi}',
    1246                                  conversions=dict(maxima='expintegral_chi'))
     1269                                 conversions=dict(maxima='expintegral_chi',
     1270                                                  sympy='Chi'))
    12471271
    12481272    def _eval_(self, z):
    12491273        """
     
    13511375    """
    13521376    def __init__(self):
    13531377        """
    1354         Return the value of the complex exponential integral Ei(z) at a
    1355         complex number z.
    1356 
    1357         EXAMPLES::
     1378        TESTS::
    13581379
    13591380            sage: Ei(10)
    13601381            Ei(10)
    1361             sage: Ei(I)
    1362             Ei(I)
    1363             sage: Ei(3+I)
    1364             Ei(I + 3)
    1365             sage: Ei(1.3)
    1366             2.72139888023202
    1367 
    1368         The branch cut for this function is along the negative real axis::
    1369 
    1370             sage: Ei(-3 + 0.1*I)
    1371             -0.0129379427181693 + 3.13993830250942*I
    1372             sage: Ei(-3 - 0.1*I)
    1373             -0.0129379427181693 - 3.13993830250942*I
    1374 
    1375         ALGORITHM: Uses mpmath.
     1382            sage: Ei(x)._sympy_()
     1383            Ei(x)
    13761384        """
    13771385        BuiltinFunction.__init__(self, "Ei",
    1378                                  conversions=dict(maxima='expintegral_ei'))
     1386                                 conversions=dict(maxima='expintegral_ei',
     1387                                                  sympy='Ei'))
    13791388
    13801389    def _eval_(self, x ):
    13811390        """
  • sage/functions/generalized.py

    diff --git a/sage/functions/generalized.py b/sage/functions/generalized.py
    a b  
    8282        dirac_delta(0)
    8383        sage: dirac_delta(x)
    8484        dirac_delta(x)
     85        sage: integrate(dirac_delta(x), x, -1, 1, algorithm='sympy')
     86        1
    8587
    8688    REFERENCES:
    8789 
     
    109111
    110112            sage: loads(dumps(dirac_delta(x)))
    111113            dirac_delta(x)
     114            sage: dirac_delta(x)._sympy_()
     115            DiracDelta(x)
    112116        """
    113117        BuiltinFunction.__init__(self, "dirac_delta", latex_name=r"\delta",
    114                                    conversions=dict(maxima='delta',
    115                                     mathematica='DiracDelta'))
    116    
     118                                 conversions=dict(mathematica='DiracDelta',
     119                                                  maxima='delta',
     120                                                  sympy='DiracDelta'))
     121
    117122    def _eval_(self, x):
    118123        """
    119124        INPUT:
     
    554559            0
    555560            sage: kronecker_delta(1,1)
    556561            1
     562            sage: y = var('y')
     563            sage: kronecker_delta(x, y)._sympy_()
     564            KroneckerDelta(x, y)
    557565        """
    558         BuiltinFunction.__init__(self, "kronecker_delta", nargs=2,
    559                                         conversions=dict(maxima='kron_delta',
    560                                         mathematica='KroneckerDelta'))
     566        BuiltinFunction.__init__(self, "kronecker_delta", nargs=2,
     567                                 conversions=dict(mathematica='KroneckerDelta',
     568                                                  maxima='kron_delta',
     569                                                  sympy='KroneckerDelta'))
    561570
    562571    def _eval_(self, m, n):
    563572        """
  • sage/functions/min_max.py

    diff --git a/sage/functions/min_max.py b/sage/functions/min_max.py
    a b  
    189189            max(x, 5)
    190190            sage: latex(max_symbolic(x,5))
    191191            \max\left(x, 5\right)
     192            sage: max_symbolic(x, 5)._sympy_()
     193            Max(5, x)
    192194        """
    193         BuiltinFunction.__init__(self, 'max', nargs=0, latex_name="\max")
     195        BuiltinFunction.__init__(self, 'max', nargs=0, latex_name="\max",
     196                                 conversions=dict(sympy='Max'))
    194197
    195198    def _eval_(self, *args):
    196199        """
     
    275278            min(x, 5)
    276279            sage: latex(min_symbolic(x,5))
    277280            \min\left(x, 5\right)
     281            sage: min_symbolic(x, 5)._sympy_()
     282            Min(5, x)
    278283        """
    279         BuiltinFunction.__init__(self, 'min', nargs=0, latex_name="\min")
     284        BuiltinFunction.__init__(self, 'min', nargs=0, latex_name="\min",
     285                                 conversions=dict(sympy='Min'))
    280286
    281287    def _eval_(self, *args):
    282288        """
  • sage/functions/other.py

    diff --git a/sage/functions/other.py b/sage/functions/other.py
    a b  
    277277            \mathrm{abs}
    278278            sage: latex(abs(x))
    279279            {\left| x \right|}
     280            sage: abs(x)._sympy_()
     281            Abs(x)
    280282
    281283        Test pickling::
    282284
    283285            sage: loads(dumps(abs(x)))
    284286            abs(x)
    285287        """
    286         GinacFunction.__init__(self, "abs", latex_name=r"\mathrm{abs}")
     288        GinacFunction.__init__(self, "abs", latex_name=r"\mathrm{abs}",
     289                               conversions=dict(sympy='Abs'))
    287290
    288291abs = abs_symbolic = Function_abs()
    289292
     
    355358
    356359            sage: latex(ceil(x))
    357360            \left \lceil x \right \rceil
     361            sage: ceil(x)._sympy_()
     362            ceiling(x)
    358363
    359364        ::
    360365
     
    369374            ceil
    370375        """
    371376        BuiltinFunction.__init__(self, "ceil",
    372                                    conversions=dict(maxima='ceiling'))
    373                                    
     377                                 conversions=dict(maxima='ceiling',
     378                                                  sympy='ceiling'))
     379
    374380    def _print_latex_(self, x):
    375381        r"""
    376382        EXAMPLES::
     
    868874            4.78749174278205
    869875            sage: log_gamma(CC(-2.5))
    870876            -0.0562437164976740 + 3.14159265358979*I
     877            sage: log_gamma(x)._sympy_()
     878            loggamma(x)
    871879
    872880        ``conjugate(log_gamma(x))==log_gamma(conjugate(x))`` unless on the branch
    873881        cut, which runs along the negative real axis.::
     
    886894            +Infinity
    887895        """
    888896        GinacFunction.__init__(self, "log_gamma", latex_name=r'\log\Gamma',
    889                 conversions={'mathematica':'LogGamma','maxima':'log_gamma'})
     897                               conversions=dict(mathematica='LogGamma',
     898                                                maxima='log_gamma',
     899                                                sympy='loggamma'))
    890900
    891901log_gamma = Function_log_gamma()
    892902
     
    11001110            psi(x)
    11011111            sage: t.subs(x=.2)
    11021112            -5.28903989659219
     1113            sage: psi(x)._sympy_()
     1114            polygamma(0, x)
    11031115        """
    11041116        GinacFunction.__init__(self, "psi", nargs=1, latex_name='\psi',
    1105                 conversions=dict(maxima='psi[0]', mathematica='PolyGamma'))
     1117                               conversions=dict(mathematica='PolyGamma',
     1118                                                maxima='psi[0]',
     1119                                                sympy='digamma'))
    11061120
    11071121class Function_psi2(GinacFunction):
    11081122    def __init__(self):
     
    11361150            sage: psi2(2, .5).n(100)
    11371151            -16.828796644234319995596334261
    11381152
    1139         Tests::
     1153        TESTS::
    11401154
    11411155            sage: psi2(n, x).derivative(n)
    11421156            Traceback (most recent call last):
     
    11471161            \psi\left(2, x\right)
    11481162            sage: loads(dumps(psi2(2,x)+1))
    11491163            psi(2, x) + 1
     1164            sage: psi(2, x)._sympy_()
     1165            polygamma(2, x)
    11501166        """
    11511167        GinacFunction.__init__(self, "psi", nargs=2, latex_name='\psi',
    1152                 conversions=dict(mathematica='PolyGamma'))
     1168                               conversions=dict(mathematica='PolyGamma',
     1169                                                sympy='polygamma'))
    11531170
    11541171    def _maxima_init_evaled_(self, n, x):
    11551172        """
     
    18731890
    18741891            sage: loads(dumps(real_part))
    18751892            real_part
     1893            sage: real_part(x)._sympy_()
     1894            re(x)
    18761895
    18771896        Check if #6401 is fixed::
    18781897
     
    18841903            \Re \left( f\left(x\right) \right)
    18851904        """
    18861905        GinacFunction.__init__(self, "real_part",
    1887                                    conversions=dict(maxima='realpart'))
     1906                               conversions=dict(maxima='realpart',
     1907                                                sympy='re'))
    18881908
    18891909    def _eval_numpy_(self, x):
    18901910        """
     
    19261946            2
    19271947            sage: loads(dumps(imag_part))
    19281948            imag_part
     1949            sage: imag_part(x)._sympy_()
     1950            im(x)
    19291951
    19301952        Check if #6401 is fixed::
    19311953
     
    19371959            \Im \left( f\left(x\right) \right)
    19381960        """
    19391961        GinacFunction.__init__(self, "imag_part",
    1940                                    conversions=dict(maxima='imagpart'))
     1962                               conversions=dict(maxima='imagpart',
     1963                                                sympy='im'))
    19411964
    19421965    def _eval_numpy_(self, x):
    19431966        """