Module Name: src
Committed By: isaki
Date: Tue Apr 9 11:42:56 UTC 2013
Modified Files:
src/tests/lib/libm: t_exp.c
Log Message:
Tune the epsilon about each value for exp{,f}_product.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libm/t_exp.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/lib/libm/t_exp.c
diff -u src/tests/lib/libm/t_exp.c:1.2 src/tests/lib/libm/t_exp.c:1.3
--- src/tests/lib/libm/t_exp.c:1.2 Wed May 30 15:14:10 2012
+++ src/tests/lib/libm/t_exp.c Tue Apr 9 11:42:56 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: t_exp.c,v 1.2 2012/05/30 15:14:10 jruoho Exp $ */
+/* $NetBSD: t_exp.c,v 1.3 2013/04/09 11:42:56 isaki Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -36,16 +36,17 @@
static const struct {
double x;
double y;
+ double e;
} exp_values[] = {
- { -10, 0.4539992976248485e-4, },
- { -5, 0.6737946999085467e-2, },
- { -1, 0.3678794411714423, },
- { -0.1, 0.9048374180359595, },
- { 0, 1.0000000000000000, },
- { 0.1, 1.1051709180756477, },
- { 1, 2.7182818284590452, },
- { 5, 148.41315910257660, },
- { 10, 22026.465794806718, },
+ { -10, 0.4539992976248485e-4, 1e-4, },
+ { -5, 0.6737946999085467e-2, 1e-2, },
+ { -1, 0.3678794411714423, 1e-1, },
+ { -0.1, 0.9048374180359595, 1e-1, },
+ { 0, 1.0000000000000000, 1, },
+ { 0.1, 1.1051709180756477, 1, },
+ { 1, 2.7182818284590452, 1, },
+ { 5, 148.41315910257660, 1e2, },
+ { 10, 22026.465794806718, 1e4, },
};
/*
@@ -327,14 +328,15 @@ ATF_TC_HEAD(exp_product, tc)
ATF_TC_BODY(exp_product, tc)
{
#ifndef __vax__
+ double eps;
double x;
double y;
- const double eps = 1.0e-11;
size_t i;
for (i = 0; i < __arraycount(exp_values); i++) {
x = exp_values[i].x;
y = exp_values[i].y;
+ eps = 1e-15 * exp_values[i].e;
if (fabs(exp(x) - y) > eps)
atf_tc_fail_nonfatal("exp(%0.01f) != %18.18e", x, y);
@@ -436,14 +438,15 @@ ATF_TC_HEAD(expf_product, tc)
ATF_TC_BODY(expf_product, tc)
{
#ifndef __vax__
+ float eps;
float x;
float y;
- const float eps = 1.0e-2;
size_t i;
for (i = 0; i < __arraycount(exp_values); i++) {
x = exp_values[i].x;
y = exp_values[i].y;
+ eps = 1e-6 * exp_values[i].e;
if (fabsf(expf(x) - y) > eps)
atf_tc_fail_nonfatal("expf(%0.01f) != %18.18e", x, y);