| """ This module cooks up a docstring when imported. Its only purpose is to | |
| be displayed in the sphinx documentation. """ | |
| from __future__ import annotations | |
| from typing import Any | |
| from sympy.integrals.meijerint import _create_lookup_table | |
| from sympy.core.add import Add | |
| from sympy.core.basic import Basic | |
| from sympy.core.expr import Expr | |
| from sympy.core.relational import Eq | |
| from sympy.core.symbol import Symbol | |
| from sympy.printing.latex import latex | |
| t: dict[tuple[type[Basic], ...], list[Any]] = {} | |
| _create_lookup_table(t) | |
| doc = "" | |
| for about, category in t.items(): | |
| if about == (): | |
| doc += 'Elementary functions:\n\n' | |
| else: | |
| doc += 'Functions involving ' + ', '.join('`%s`' % latex( | |
| list(category[0][0].atoms(func))[0]) for func in about) + ':\n\n' | |
| for formula, gs, cond, hint in category: | |
| if not isinstance(gs, list): | |
| g: Expr = Symbol('\\text{generated}') | |
| else: | |
| g = Add(*[fac*f for (fac, f) in gs]) | |
| obj = Eq(formula, g) | |
| if cond is True: | |
| cond = "" | |
| else: | |
| cond = ',\\text{ if } %s' % latex(cond) | |
| doc += ".. math::\n %s%s\n\n" % (latex(obj), cond) | |
| __doc__ = doc | |