diff --git a/mathics/builtin/intfns/combinatorial.py b/mathics/builtin/intfns/combinatorial.py
index ae3c4df0e..a468aac24 100644
--- a/mathics/builtin/intfns/combinatorial.py
+++ b/mathics/builtin/intfns/combinatorial.py
@@ -416,9 +416,9 @@ class PolygonalNumber(Builtin):
See also
:Binomial:
- doc/reference-of-built-in-symbols/integer-functions/combinatorial-functions/binomial/, and
+ /doc/reference-of-built-in-symbols/integer-functions/combinatorial-functions/binomial/, and
:RegularPolygon:
- doc/reference-of-built-in-symbols/drawing-graphics/regularpolygon/.
+ /doc/reference-of-built-in-symbols/drawing-graphics/regularpolygon/.
"""
attributes = A_LISTABLE | A_NUMERIC_FUNCTION | A_PROTECTED | A_READ_PROTECTED
diff --git a/mathics/builtin/numbers/calculus.py b/mathics/builtin/numbers/calculus.py
index 0efd55114..80bb3ef7a 100644
--- a/mathics/builtin/numbers/calculus.py
+++ b/mathics/builtin/numbers/calculus.py
@@ -952,8 +952,10 @@ class Integers(Builtin):
class Integrate(SympyFunction):
r"""
- :WMA link:
- https://reference.wolfram.com/language/ref/Integrate.html
+ :Integral:https://en.wikipedia.org/wiki/Integral (:SymPy:
+ https://docs.sympy.org/latest/modules/integrals/integrals.html, \
+ :WMA:
+ https://reference.wolfram.com/language/ref/Integrate.html)
- 'Integrate[$f$, $x$]'
@@ -984,18 +986,20 @@ class Integrate(SympyFunction):
>> Integrate[4 Sin[x] Cos[x], x]
= 2 Sin[x] ^ 2
- > Integrate[-Infinity, {x, 0, Infinity}]
+ >> Integrate[-Infinity, {x, 0, Infinity}]
= -Infinity
- > Integrate[-Infinity, {x, Infinity, 0}]
- = Infinity
+ Integrating something ill-defined returns the expression untouched:
- Integration in TeX:
+ >> Integrate[1, {x, Infinity, 0}]
+ = Integrate[1, {x, Infinity, 0}]
+
+ Here how is an example of converting integral equation to TeX:
>> Integrate[f[x], {x, a, b}] // TeXForm
= \int_a^b f\left[x\right] \, dx
Sometimes there is a loss of precision during integration.
- You can check the precision of your result with the following sequence
+ You can check the precision of your result with the following sequence \
of commands.
>> Integrate[Abs[Sin[phi]], {phi, 0, 2Pi}] // N
= 4.
@@ -1114,6 +1118,10 @@ def eval(self, f, xs, evaluation: Evaluation, options: dict): # type: ignore[ov
# e.g. NotImplementedError: Result depends on the sign of
# -sign(_u`j)*sign(_u`w)
return
+ except TypeError:
+ # SymPy can give this. For example:
+ # Integrate[-Infinity, {x, 0, Infinity}]
+ return
if prec is not None and isinstance(sympy_result, sympy.Integral):
# TODO MaxExtraPrecision -> maxn
sympy_result = sympy_result.evalf(dps(prec))