|
2 | 2 |
|
3 | 3 | from __future__ import annotations
|
4 | 4 |
|
| 5 | +import enum |
| 6 | + |
5 | 7 | PREFIXES = ["math", "numpy", "np"]
|
6 | 8 |
|
7 |
| -BUILTIN_FUNCS: dict[str, tuple[str, str]] = { |
8 |
| - "abs": (r"\left|{", r"}\right|"), |
9 |
| - "acos": (r"\arccos{\left({", r"}\right)}"), |
10 |
| - "acosh": (r"\mathrm{arccosh}{\left({", r"}\right)}"), |
11 |
| - "arccos": (r"\arccos{\left({", r"}\right)}"), |
12 |
| - "arccosh": (r"\mathrm{arccosh}{\left({", r"}\right)}"), |
13 |
| - "arcsin": (r"\arcsin{\left({", r"}\right)}"), |
14 |
| - "arcsinh": (r"\mathrm{arcsinh}{\left({", r"}\right)}"), |
15 |
| - "arctan": (r"\arctan{\left({", r"}\right)}"), |
16 |
| - "arctanh": (r"\mathrm{arctanh}{\left({", r"}\right)}"), |
17 |
| - "asin": (r"\arcsin{\left({", r"}\right)}"), |
18 |
| - "asinh": (r"\mathrm{arcsinh}{\left({", r"}\right)}"), |
19 |
| - "atan": (r"\arctan{\left({", r"}\right)}"), |
20 |
| - "atanh": (r"\mathrm{arctanh}{\left({", r"}\right)}"), |
21 |
| - "ceil": (r"\left\lceil{", r"}\right\rceil"), |
22 |
| - "cos": (r"\cos{\left({", r"}\right)}"), |
23 |
| - "cosh": (r"\cosh{\left({", r"}\right)}"), |
24 |
| - "exp": (r"\exp{\left({", r"}\right)}"), |
25 |
| - "fabs": (r"\left|{", r"}\right|"), |
26 |
| - "factorial": (r"\left({", r"}\right)!"), |
27 |
| - "floor": (r"\left\lfloor{", r"}\right\rfloor"), |
28 |
| - "fsum": (r"\sum\left({", r"}\right)"), |
29 |
| - "gamma": (r"\Gamma\left({", r"}\right)"), |
30 |
| - "log": (r"\log{\left({", r"}\right)}"), |
31 |
| - "log10": (r"\log_{10}{\left({", r"}\right)}"), |
32 |
| - "log2": (r"\log_{2}{\left({", r"}\right)}"), |
33 |
| - "prod": (r"\prod \left({", r"}\right)"), |
34 |
| - "sin": (r"\sin{\left({", r"}\right)}"), |
35 |
| - "sinh": (r"\sinh{\left({", r"}\right)}"), |
36 |
| - "sqrt": (r"\sqrt{", "}"), |
37 |
| - "tan": (r"\tan{\left({", r"}\right)}"), |
38 |
| - "tanh": (r"\tanh{\left({", r"}\right)}"), |
39 |
| - "sum": (r"\sum \left({", r"}\right)"), |
| 9 | + |
| 10 | +class BuiltinFnName(str, enum.Enum): |
| 11 | + """Built-in function name.""" |
| 12 | + |
| 13 | + ABS = "abs" |
| 14 | + ACOS = "acos" |
| 15 | + ACOSH = "acosh" |
| 16 | + ARCCOS = "arccos" |
| 17 | + ARCCOSH = "arcosh" |
| 18 | + ARCSIN = "arcsin" |
| 19 | + ARCSINH = "arcsihn" |
| 20 | + ARCTAN = "arctan" |
| 21 | + ARCTANH = "arctanh" |
| 22 | + ASIN = "asin" |
| 23 | + ASINH = "asinh" |
| 24 | + ATAN = "atan" |
| 25 | + ATANH = "atanh" |
| 26 | + CEIL = "ceil" |
| 27 | + COS = "cos" |
| 28 | + COSH = "cosh" |
| 29 | + EXP = "exp" |
| 30 | + FABS = "fabs" |
| 31 | + FACTORIAL = "factorial" |
| 32 | + FLOOR = "floor" |
| 33 | + FSUM = "fsum" |
| 34 | + GAMMA = "gamma" |
| 35 | + LOG = "log" |
| 36 | + LOG10 = "log10" |
| 37 | + LOG2 = "log2" |
| 38 | + PROD = "prod" |
| 39 | + SIN = "sin" |
| 40 | + SINH = "sinh" |
| 41 | + SQRT = "sqrt" |
| 42 | + TAN = "tan" |
| 43 | + TANH = "tanh" |
| 44 | + SUM = "sum" |
| 45 | + |
| 46 | + |
| 47 | +BUILTIN_FUNCS: dict[BuiltinFnName, tuple[str, str]] = { |
| 48 | + BuiltinFnName.ABS: (r"\left|{", r"}\right|"), |
| 49 | + BuiltinFnName.ACOS: (r"\arccos{\left({", r"}\right)}"), |
| 50 | + BuiltinFnName.ACOSH: (r"\mathrm{arccosh}{\left({", r"}\right)}"), |
| 51 | + BuiltinFnName.ARCCOS: (r"\arccos{\left({", r"}\right)}"), |
| 52 | + BuiltinFnName.ARCCOSH: (r"\mathrm{arccosh}{\left({", r"}\right)}"), |
| 53 | + BuiltinFnName.ARCSIN: (r"\arcsin{\left({", r"}\right)}"), |
| 54 | + BuiltinFnName.ARCSINH: (r"\mathrm{arcsinh}{\left({", r"}\right)}"), |
| 55 | + BuiltinFnName.ARCTAN: (r"\arctan{\left({", r"}\right)}"), |
| 56 | + BuiltinFnName.ARCTANH: (r"\mathrm{arctanh}{\left({", r"}\right)}"), |
| 57 | + BuiltinFnName.ASIN: (r"\arcsin{\left({", r"}\right)}"), |
| 58 | + BuiltinFnName.ASINH: (r"\mathrm{arcsinh}{\left({", r"}\right)}"), |
| 59 | + BuiltinFnName.ATAN: (r"\arctan{\left({", r"}\right)}"), |
| 60 | + BuiltinFnName.ATANH: (r"\mathrm{arctanh}{\left({", r"}\right)}"), |
| 61 | + BuiltinFnName.CEIL: (r"\left\lceil{", r"}\right\rceil"), |
| 62 | + BuiltinFnName.COS: (r"\cos{\left({", r"}\right)}"), |
| 63 | + BuiltinFnName.COSH: (r"\cosh{\left({", r"}\right)}"), |
| 64 | + BuiltinFnName.EXP: (r"\exp{\left({", r"}\right)}"), |
| 65 | + BuiltinFnName.FABS: (r"\left|{", r"}\right|"), |
| 66 | + BuiltinFnName.FACTORIAL: (r"\left({", r"}\right)!"), |
| 67 | + BuiltinFnName.FLOOR: (r"\left\lfloor{", r"}\right\rfloor"), |
| 68 | + BuiltinFnName.FSUM: (r"\sum\left({", r"}\right)"), |
| 69 | + BuiltinFnName.GAMMA: (r"\Gamma\left({", r"}\right)"), |
| 70 | + BuiltinFnName.LOG: (r"\log{\left({", r"}\right)}"), |
| 71 | + BuiltinFnName.LOG10: (r"\log_{10}{\left({", r"}\right)}"), |
| 72 | + BuiltinFnName.LOG2: (r"\log_{2}{\left({", r"}\right)}"), |
| 73 | + BuiltinFnName.PROD: (r"\prod \left({", r"}\right)"), |
| 74 | + BuiltinFnName.SIN: (r"\sin{\left({", r"}\right)}"), |
| 75 | + BuiltinFnName.SINH: (r"\sinh{\left({", r"}\right)}"), |
| 76 | + BuiltinFnName.SQRT: (r"\sqrt{", "}"), |
| 77 | + BuiltinFnName.TAN: (r"\tan{\left({", r"}\right)}"), |
| 78 | + BuiltinFnName.TANH: (r"\tanh{\left({", r"}\right)}"), |
| 79 | + BuiltinFnName.SUM: (r"\sum \left({", r"}\right)"), |
40 | 80 | }
|
0 commit comments