次の小さなプログラムは、Python 3.8 を使用すると失敗しますが、2.7 では問題ありません。
from mpmath import mpf, nsum
def z(n):
x = [mpf(1) for k in range(1,n)]
return 99
print (nsum(z, [2,2]))
かなり大きなプログラムから切り捨てられているため、コードは奇妙に見えます。これ以上切り詰めることはできません。これは、 https://www.python.org/shell/のインタラクティブ シェルを使用して簡単に確認できます。
エラーレポートは次のとおりです。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.8/site-packages/mpmath/calculus/extrapolation.py", line 1698, in nsum
return +g()
File "/usr/lib/python3.8/site-packages/mpmath/calculus/extrapolation.py", line 1745, in <lambda>
return False, lambda: f(*([0]*len(intervals)))
File "/usr/lib/python3.8/site-packages/mpmath/calculus/extrapolation.py", line 1777, in g
s += f(*args)
File "<stdin>", line 2, in z
TypeError: 'mpf' object cannot be interpreted as an integer
明らかな何かを見逃しましたか?