Skip to content

Commit

Permalink
Merge pull request #18908 from OmarWagih1/added_airy
Browse files Browse the repository at this point in the history
Added Airy functionality to the SciPyPrinter class
  • Loading branch information
sylee957 committed Mar 20, 2020
2 parents c02515a + 1fbab02 commit 778ddd0
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
20 changes: 20 additions & 0 deletions sympy/printing/pycode.py
Expand Up @@ -970,6 +970,26 @@ def _print_fresnelc(self, expr):
self._module_format("scipy.special.fresnel"),
self._print(expr.args[0]))

def _print_airyai(self, expr):
return "{0}({1})[0]".format(
self._module_format("scipy.special.airy"),
self._print(expr.args[0]))

def _print_airyaiprime(self, expr):
return "{0}({1})[1]".format(
self._module_format("scipy.special.airy"),
self._print(expr.args[0]))

def _print_airybi(self, expr):
return "{0}({1})[2]".format(
self._module_format("scipy.special.airy"),
self._print(expr.args[0]))

def _print_airybiprime(self, expr):
return "{0}({1})[3]".format(
self._module_format("scipy.special.airy"),
self._print(expr.args[0]))


for k in SciPyPrinter._kf:
setattr(SciPyPrinter, '_print_%s' % k, _print_known_func)
Expand Down
36 changes: 36 additions & 0 deletions sympy/printing/tests/test_pycode.py
Expand Up @@ -284,3 +284,39 @@ def test_beta():

prntr = MpmathPrinter()
assert prntr.doprint(expr) == 'mpmath.beta(x, y)'

def test_airy():
from sympy import airyai, airybi

expr1 = airyai(x)
expr2 = airybi(x)

prntr = SciPyPrinter()
assert prntr.doprint(expr1) == 'scipy.special.airy(x)[0]'
assert prntr.doprint(expr2) == 'scipy.special.airy(x)[2]'

prntr = NumPyPrinter()
assert prntr.doprint(expr1) == ' # Not supported in Python with NumPy:\n # airyai\nairyai(x)'
assert prntr.doprint(expr2) == ' # Not supported in Python with NumPy:\n # airybi\nairybi(x)'

prntr = PythonCodePrinter()
assert prntr.doprint(expr1) == ' # Not supported in Python:\n # airyai\nairyai(x)'
assert prntr.doprint(expr2) == ' # Not supported in Python:\n # airybi\nairybi(x)'

def test_airy_prime():
from sympy import airyaiprime, airybiprime

expr1 = airyaiprime(x)
expr2 = airybiprime(x)

prntr = SciPyPrinter()
assert prntr.doprint(expr1) == 'scipy.special.airy(x)[1]'
assert prntr.doprint(expr2) == 'scipy.special.airy(x)[3]'

prntr = NumPyPrinter()
assert prntr.doprint(expr1) == ' # Not supported in Python with NumPy:\n # airyaiprime\nairyaiprime(x)'
assert prntr.doprint(expr2) == ' # Not supported in Python with NumPy:\n # airybiprime\nairybiprime(x)'

prntr = PythonCodePrinter()
assert prntr.doprint(expr1) == ' # Not supported in Python:\n # airyaiprime\nairyaiprime(x)'
assert prntr.doprint(expr2) == ' # Not supported in Python:\n # airybiprime\nairybiprime(x)'

0 comments on commit 778ddd0

Please sign in to comment.