jamtur01's picture
Upload folder using huggingface_hub
9c6594c verified
import sympy
GREEK_LETTER_MAP = {
# Alpha
'α': 'alpha',
'\\alpha': 'alpha',
'\\char000391': 'alpha',
# Beta
'β': 'beta',
'\\beta': 'beta',
'\\char000392': 'beta',
# Gamma
'γ': 'gamma',
'\\gamma': 'gamma',
'Γ': 'Gamma',
'\\Gamma': 'Gamma',
# Delta
'δ': 'delta',
'\\delta': 'delta',
'Δ': 'Delta',
'\\Delta': 'Delta',
# Epsilon
'ε': 'epsilon',
'\\epsilon': 'epsilon',
'\\char000190': 'epsilon',
'ϵ': 'varepsilon',
'\\varepsilon': 'varepsilon',
# Zeta
'ζ': 'zeta',
'\\zeta': 'zeta',
'\\char000396': 'zeta',
# Eta
'η': 'eta',
'\\eta': 'eta',
'\\char000397': 'eta',
# Theta
'θ': 'theta',
'\\theta': 'theta',
'Θ': 'Theta',
'\\Theta': 'Theta',
'ϑ': 'vartheta',
'\\vartheta': 'vartheta',
# Iota
'ι': 'iota',
'\\iota': 'iota',
'\\char000399': 'iota',
# Kappa
'κ': 'kappa',
'\\kappa': 'kappa',
'\\char00039A': 'kappa',
# Lambda
'λ': 'lambda',
'\\lambda': 'lambda',
'Λ': 'Lambda',
'\\Lambda': 'Lambda',
# Mu
'μ': 'mu',
'\\mu': 'mu',
'\\char00039C': 'mu',
# Nu
'ν': 'nu',
'\\nu': 'nu',
'\\char00039D': 'nu',
# Xi
'ξ': 'xi',
'\\xi': 'xi',
'Ξ': 'Xi',
'\\Xi': 'Xi',
# Omicron
'ο': 'omicron',
'\\omicron': 'omicron',
'\\char00039F': 'omicron',
# Pi
'π': 'pi',
'\\pi': 'pi',
'Π': 'Pi',
'\\Pi': 'Pi',
'ϖ': 'varpi',
'\\varpi': 'varpi',
# Rho
'ρ': 'rho',
'\\rho': 'rho',
'\\char0003A1': 'rho',
'ϱ': 'varrho',
'\\varrho': 'varrho',
# Sigma
'σ': 'sigma',
'\\sigma': 'sigma',
'Σ': 'Sigma',
'\\Sigma': 'Sigma',
'ς': 'varsigma',
'\\varsigma': 'varsigma',
# Tau
'τ': 'tau',
'\\tau': 'tau',
'\\char0003A4': 'tau',
# Upsilon
'υ': 'upsilon',
'\\upsilon': 'upsilon',
'Υ': 'Upsilon',
'\\Upsilon': 'Upsilon',
# Phi
'φ': 'phi',
'\\phi': 'phi',
'Φ': 'Phi',
'\\Phi': 'Phi',
'ϕ': 'varphi',
'\\varphi': 'varphi',
# Chi
'χ': 'chi',
'\\chi': 'chi',
'\\char0003A7': 'chi',
# Psi
'ψ': 'psi',
'\\psi': 'psi',
'Ψ': 'Psi',
'\\Psi': 'Psi',
# Omega
'ω': 'omega',
'\\omega': 'omega',
'Ω': 'Omega',
'\\Omega': 'Omega'
}
sympy_singleton_map = {
'pi': sympy.S.Pi,
}
def get_symbol(latex_str: str, is_real: bool | None = True, lowercase_symbols: bool = False):
latex_str = latex_str.strip()
letter = GREEK_LETTER_MAP.get(latex_str.replace('"', ''))
if letter is None:
letter = latex_str
if letter.startswith('\\'):
letter = letter[1:]
if lowercase_symbols:
letter = letter.lower()
if letter in sympy_singleton_map:
return sympy_singleton_map[letter]
else:
return sympy.Symbol(letter, real=is_real)