meijerint_doc.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """ This module cooks up a docstring when imported. Its only purpose is to
  2. be displayed in the sphinx documentation. """
  3. from __future__ import annotations
  4. from typing import Any
  5. from sympy.integrals.meijerint import _create_lookup_table
  6. from sympy.core.add import Add
  7. from sympy.core.basic import Basic
  8. from sympy.core.relational import Eq
  9. from sympy.core.symbol import Symbol
  10. from sympy.printing.latex import latex
  11. t: dict[tuple[type[Basic], ...], list[Any]] = {}
  12. _create_lookup_table(t)
  13. doc = ""
  14. for about, category in t.items():
  15. if about == ():
  16. doc += 'Elementary functions:\n\n'
  17. else:
  18. doc += 'Functions involving ' + ', '.join('`%s`' % latex(
  19. list(category[0][0].atoms(func))[0]) for func in about) + ':\n\n'
  20. for formula, gs, cond, hint in category:
  21. if not isinstance(gs, list):
  22. g = Symbol('\\text{generated}')
  23. else:
  24. g = Add(*[fac*f for (fac, f) in gs])
  25. obj = Eq(formula, g)
  26. if cond is True:
  27. cond = ""
  28. else:
  29. cond = ',\\text{ if } %s' % latex(cond)
  30. doc += ".. math::\n %s%s\n\n" % (latex(obj), cond)
  31. __doc__ = doc