解决chudnovsky公式代码报错

以上代码运行时报错,能问一下原因吗,期待修改后的代码

import decimal
import numpy as np
import numexpr as ne
import math
import time

def chudnovsky_single_term(k):
    """
    计算丘德诺夫斯基公式的单项式
    """
    numerator   = 13591409 + 545140134*k
    denominator = (k+1)**3 * 640320**(2*k+1/2)
    return decimal.Decimal(numerator/denominator)

def parallel_chudnovsky(precision, num_processes=4, num_threads=4):
    """
    并行计算圆周率的函数
    """
    decimal.getcontext().prec = precision
    
    num_terms = int(precision / 14)   # 计算公式需要的项数

    t1 = time.time()
    with np.errstate(divide='ignore'):
        k = np.arange(num_terms, dtype=np.float128)
        terms = ne.evaluate("(1103+26390*k) / (math.factorial(k)**4) * chudnovsky_single_term(k)")
        
    with np.errstate(invalid='ignore'):
        # 排除计算结果为nan和inf的项
        terms = terms[np.isfinite(terms)]
    
    total_sum = np.sum(terms, dtype=np.float128)
    pi = 1 / ((12 * total_sum) ** 0.5)
    t2 = time.time()
    
    calc_time = t2 - t1
    
    t1 = time.time()
    with open("pi.txt", "w+") as f:
        f.write(str(pi))
    t2 = time.time()
    
    write_time = t2 - t1
    
    total_time = calc_time + write_time
    
    return pi, calc_time, write_time, total_time

if __name__ == "__main__":
    pi, calc_time, write_time, total_time = parallel_chudnovsky(10000000)
    
    truncated_pi = str(pi)[-100:]
    
    print(f"计算用时: {calc_time:.2f} 秒")
    print(f"写入文件用时: {write_time:.2f} 秒")
    print(f"总用时: {total_time:.2f} 秒")
    print(f"计算结果: {truncated_pi}")

报错情况如下

img

报错代码发我一遍