def test_singularities_at_both_ends(f_left, f_right, b, exact):
# test fine error estimate
tol = 10**(-mp.dps)
t = sympy.Symbol('t')
fl = {
0: f_left,
1: sympy.lambdify(t, sympy.diff(f_left(t), t, 1), modules=['mpmath']),
2: sympy.lambdify(t, sympy.diff(f_left(t), t, 2), modules=['mpmath']),
}
fr = {
0: f_right,
1: sympy.lambdify(t, sympy.diff(f_right(t), t, 1), modules=['mpmath']),
2: sympy.lambdify(t, sympy.diff(f_right(t), t, 2), modules=['mpmath']),
}
value, _ = quadpy.line_segment.tanh_sinh_lr(fl, fr, b, tol)
tol2 = 10**(-mp.dps+1)
assert abs(value - exact) < tol2
# # test with crude estimate
# fl = {0: f_left}
# fr = {0: f_right}
# value, _ = quadpy.line_segment.tanh_sinh_lr(fl, fr, b, tol)
# tol2 = 10**(-mp.dps+2)
# assert abs(value - exact) < tol2
return
评论列表
文章目录