meijerint_doc.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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.expr import Expr
  9. from sympy.core.relational import Eq
  10. from sympy.core.symbol import Symbol
  11. from sympy.printing.latex import latex
  12. t: dict[tuple[type[Basic], ...], list[Any]] = {}
  13. _create_lookup_table(t)
  14. doc = ""
  15. for about, category in t.items():
  16. if about == ():
  17. doc += 'Elementary functions:\n\n'
  18. else:
  19. doc += 'Functions involving ' + ', '.join('`%s`' % latex(
  20. list(category[0][0].atoms(func))[0]) for func in about) + ':\n\n'
  21. for formula, gs, cond, hint in category:
  22. if not isinstance(gs, list):
  23. g: Expr = Symbol('\\text{generated}')
  24. else:
  25. g = Add(*[fac*f for (fac, f) in gs])
  26. obj = Eq(formula, g)
  27. if cond is True:
  28. cond = ""
  29. else:
  30. cond = ',\\text{ if } %s' % latex(cond)
  31. doc += ".. math::\n %s%s\n\n" % (latex(obj), cond)
  32. __doc__ = doc