Created by: juncaipeng
对于fp64单测,统一使用标准误差阈值。
前向检查的误差阈值 atol=0。
反向检查的误差阈值 max_relative_error = 1e-7,但是实际分段使用不同的误差阈值。阈值判断是基于np.abs(a-b)/np.abs(a),根据np.abs(a)的数值对np.abs(a)进行修改,改动后方案如下: 如果数值小于1e-10,要求绝对误差小于1e-10; 如果数值在1e-10到1e-8之间,要求相对误差小于1e-3; 如果数值在1e-8到1e-6之间,要求相对误差小于1e-5; 如果数值大于1e-6,要求相对误差小于1e-7。
举例说明: 比如数值小于1e-10,则np.abs(a)=1e-3,要求np.abs(a-b)/1e-3<1e-7,换算即是np.abs(a-b)<1e-10,从相对误差转换成绝对误差; 如果数值在1e-8到1e-6之间,则abs_a[np.logical_and(abs_a > 1e-8, abs_a <= 1e-6)] *= 1e2,np.abs(a-b)/(np.abs(a)*1e2)<1e-7,换算后即是np.abs(a-b)/np.abs(a)<1e-5。