【发布时间】:2020-05-05 18:33:08
【问题描述】:
我优化了exponential exp函数。我正在检查关于标准数学 exp 函数的输出。
Res_opt 和 Res_std 是我的两个输出。
我首先检查了绝对错误:
Abs_error = abs(Res_opt - Res_std )
我输入了MAX_DEV = 0.500000(通过考虑我的算法)
并检查:
if(Abs_error > MAX_DEV){
printf("Error message").
return 0;
}
在少数情况下,Abs_error 的值大于0.50000 的值并且我的测试用例失败(但我觉得对于该输入,派生结果很好,因为它是一个极端情况)。
所以我决定检查相对错误。
但是我的问题是,我应该使用以下逻辑检查相对误差还是百分比相对误差 -
ACC_BAND = 0.400000000000000;
double min_acc_range = 1 - ACC_BAND;
double max_acc_range = 1 + ACC_BAND;
Relative_error = abs(Res_opt - Res_std)/Res_std ;
if ((Relative_error < min_acc_range) || (Relative_error > max_acc_range)) {
printf("Error message");
}
或
Percentage_Relative_error = 1 - (abs(Res_opt - Res_std)/Res_std)*100 ;
if ((Percentage_Relative_error < min_acc_range) || (Percentage_Relative_error > max_acc_range)) {
printf("Error message");
}
【问题讨论】:
-
他们的结局是一样的
标签: c error-handling