Physics Derivation Graph navigation Sign in

function Latex for Sympy

Published 2020-07-29T13:59:00.004Z by Physics Derivation Graph

I am interested in parsing functions written in Latex into a Sympy representation. For simple examples, this currently works:

>>> import sympy 
>>> sympy.__version__ 
>>> from sympy.parsing.latex import parse_latex
>>> sympy.srepr(parse_latex('f(x)'))

That's good. Sympy also supports expressions like

>>> sympy.srepr(parse_latex('x=0'))
"Equality(Symbol('x'), Integer(0))"

However, a function with a constraint written in Latex is not parsed correctly:

>>> sympy.srepr(parse_latex('f(x = 0)'))

The opposite direction does work (from Sympy to Latex)

>>> sympy.latex(sympy.Function('f')(sympy.Equality(sympy.Symbol('x'), sympy.Integer(0))))
'f{\\left(x = 0 \\right)}'

Similarly, we can get more complicated expressions from Sympy to Latex

>>> sympy.latex(sympy.Equality(sympy.Function('f')(sympy.Equality(sympy.Symbol('x'), sympy.Integer(0))),sympy.Symbol('a')))
'f{\\left(x = 0 \\right)} = a'

but the opposite (Latex to Sympy) is not working:

>>> sympy.srepr(parse_latex('f{\\left(x = 0 \\right)} = a'))

I've opened