From ad9c9f1c69f340752148757288b5d1757fbb93ce Mon Sep 17 00:00:00 2001 From: Leon Maksin Date: Thu, 7 Aug 2025 09:46:54 -0700 Subject: [PATCH] add support for gamma function / constant parsing --- src/latex2sympy2_extended/PS.g4 | 4 +++- src/latex2sympy2_extended/latex2sympy2.py | 3 ++- src/latex2sympy2_extended/symbols.py | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/latex2sympy2_extended/PS.g4 b/src/latex2sympy2_extended/PS.g4 index 7996932..8601005 100644 --- a/src/latex2sympy2_extended/PS.g4 +++ b/src/latex2sympy2_extended/PS.g4 @@ -91,6 +91,7 @@ FUNC_TAN: '\\tan'; FUNC_CSC: '\\csc'; FUNC_SEC: '\\sec'; FUNC_COT: '\\cot'; +FUNC_GAMMA: '\\Gamma' | '\\gamma'; FUNC_ARCSIN: '\\arcsin'; FUNC_ARCCOS: '\\arccos'; @@ -582,7 +583,8 @@ func_normal_functions_single_arg: | FUNC_SINH | FUNC_COSH | FUNC_TANH | FUNC_ARSINH | FUNC_ARCOSH | FUNC_ARTANH | FUNC_ARCSINH | FUNC_ARCCOSH | FUNC_ARCTANH - | FUNC_FLOOR | FUNC_CEIL | FUNC_DET; + | FUNC_FLOOR | FUNC_CEIL | FUNC_DET + | FUNC_GAMMA; func_normal_functions_multi_arg: FUNC_GCD | FUNC_LCM | FUNC_MAX | FUNC_MIN; diff --git a/src/latex2sympy2_extended/latex2sympy2.py b/src/latex2sympy2_extended/latex2sympy2.py index 1c33e55..f77b772 100644 --- a/src/latex2sympy2_extended/latex2sympy2.py +++ b/src/latex2sympy2_extended/latex2sympy2.py @@ -1177,7 +1177,8 @@ def convert_func(self, func): expr = self.handle_ceil(arg) elif name == 'det': expr = arg.det() - + elif name in ["Gamma", "gamma"]: + expr = sympy.gamma(arg) elif name in ["sin", "cos", "tan", "csc", "sec", "cot"]: if func_pow == -1: name = "a" + name diff --git a/src/latex2sympy2_extended/symbols.py b/src/latex2sympy2_extended/symbols.py index ec3d18e..213c3cf 100644 --- a/src/latex2sympy2_extended/symbols.py +++ b/src/latex2sympy2_extended/symbols.py @@ -148,6 +148,7 @@ sympy_singleton_map = { 'pi': sympy.S.Pi, + 'gamma': sympy.EulerGamma, } def get_symbol(latex_str: str, is_real: bool | None = True, lowercase_symbols: bool = False):