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);