From 14e6dee90cbab20596b53a9a2fa98cc05ccc9ebd Mon Sep 17 00:00:00 2001 From: Marcin Hajder Date: Tue, 28 Jan 2025 15:34:26 +0100 Subject: [PATCH] Enabled tgamma test for bruteforce suite --- .../math_brute_force/function_list.cpp | 2 +- test_conformance/math_brute_force/main.cpp | 69 ++++++++++--------- .../math_brute_force/reference_math.cpp | 6 +- .../math_brute_force/reference_math.h | 9 ++- 4 files changed, 48 insertions(+), 38 deletions(-) diff --git a/test_conformance/math_brute_force/function_list.cpp b/test_conformance/math_brute_force/function_list.cpp index f06921bddb..ca97ff9335 100644 --- a/test_conformance/math_brute_force/function_list.cpp +++ b/test_conformance/math_brute_force/function_list.cpp @@ -397,7 +397,7 @@ const Func functionList[] = { ENTRY(tanh, 5.0f, 5.0f, 2.0f, FTZ_OFF, unaryF), ENTRY(tanpi, 6.0f, 6.0f, 2.0f, FTZ_OFF, unaryF), - //ENTRY(tgamma, 16.0f, 16.0f, FTZ_OFF, unaryF), Commented this out until we can be sure this requirement is realistic + ENTRY(tgamma, 16.0f, 16.0f, 4.f, FTZ_OFF, unaryF), ENTRY(trunc, 0.0f, 0.0f, 0.0f, FTZ_OFF, unaryF), HALF_ENTRY(cos, 8192.0f, 8192.0f, FTZ_ON, unaryOF), diff --git a/test_conformance/math_brute_force/main.cpp b/test_conformance/math_brute_force/main.cpp index 38954f3f25..92d190adc5 100644 --- a/test_conformance/math_brute_force/main.cpp +++ b/test_conformance/math_brute_force/main.cpp @@ -277,40 +277,41 @@ static int doTest(const char *name) } static test_definition test_list[] = { - ADD_TEST(acos), ADD_TEST(acosh), ADD_TEST(acospi), - ADD_TEST(asin), ADD_TEST(asinh), ADD_TEST(asinpi), - ADD_TEST(atan), ADD_TEST(atanh), ADD_TEST(atanpi), - ADD_TEST(atan2), ADD_TEST(atan2pi), ADD_TEST(cbrt), - ADD_TEST(ceil), ADD_TEST(copysign), ADD_TEST(cos), - ADD_TEST(cosh), ADD_TEST(cospi), ADD_TEST(exp), - ADD_TEST(exp2), ADD_TEST(exp10), ADD_TEST(expm1), - ADD_TEST(fabs), ADD_TEST(fdim), ADD_TEST(floor), - ADD_TEST(fma), ADD_TEST(fmax), ADD_TEST(fmin), - ADD_TEST(fmod), ADD_TEST(fract), ADD_TEST(frexp), - ADD_TEST(hypot), ADD_TEST(ilogb), ADD_TEST(isequal), - ADD_TEST(isfinite), ADD_TEST(isgreater), ADD_TEST(isgreaterequal), - ADD_TEST(isinf), ADD_TEST(isless), ADD_TEST(islessequal), - ADD_TEST(islessgreater), ADD_TEST(isnan), ADD_TEST(isnormal), - ADD_TEST(isnotequal), ADD_TEST(isordered), ADD_TEST(isunordered), - ADD_TEST(ldexp), ADD_TEST(lgamma), ADD_TEST(lgamma_r), - ADD_TEST(log), ADD_TEST(log2), ADD_TEST(log10), - ADD_TEST(log1p), ADD_TEST(logb), ADD_TEST(mad), - ADD_TEST(maxmag), ADD_TEST(minmag), ADD_TEST(modf), - ADD_TEST(nan), ADD_TEST(nextafter), ADD_TEST(pow), - ADD_TEST(pown), ADD_TEST(powr), ADD_TEST(remainder), - ADD_TEST(remquo), ADD_TEST(rint), ADD_TEST(rootn), - ADD_TEST(round), ADD_TEST(rsqrt), ADD_TEST(signbit), - ADD_TEST(sin), ADD_TEST(sincos), ADD_TEST(sinh), - ADD_TEST(sinpi), ADD_TEST(sqrt), ADD_TEST(sqrt_cr), - ADD_TEST(tan), ADD_TEST(tanh), ADD_TEST(tanpi), - ADD_TEST(trunc), ADD_TEST(half_cos), ADD_TEST(half_divide), - ADD_TEST(half_exp), ADD_TEST(half_exp2), ADD_TEST(half_exp10), - ADD_TEST(half_log), ADD_TEST(half_log2), ADD_TEST(half_log10), - ADD_TEST(half_powr), ADD_TEST(half_recip), ADD_TEST(half_rsqrt), - ADD_TEST(half_sin), ADD_TEST(half_sqrt), ADD_TEST(half_tan), - ADD_TEST(add), ADD_TEST(subtract), ADD_TEST(divide), - ADD_TEST(divide_cr), ADD_TEST(multiply), ADD_TEST(assignment), - ADD_TEST(not ), ADD_TEST(erf), ADD_TEST(erfc), + ADD_TEST(acos), ADD_TEST(acosh), ADD_TEST(acospi), + ADD_TEST(asin), ADD_TEST(asinh), ADD_TEST(asinpi), + ADD_TEST(atan), ADD_TEST(atanh), ADD_TEST(atanpi), + ADD_TEST(atan2), ADD_TEST(atan2pi), ADD_TEST(cbrt), + ADD_TEST(ceil), ADD_TEST(copysign), ADD_TEST(cos), + ADD_TEST(cosh), ADD_TEST(cospi), ADD_TEST(exp), + ADD_TEST(exp2), ADD_TEST(exp10), ADD_TEST(expm1), + ADD_TEST(fabs), ADD_TEST(fdim), ADD_TEST(floor), + ADD_TEST(fma), ADD_TEST(fmax), ADD_TEST(fmin), + ADD_TEST(fmod), ADD_TEST(fract), ADD_TEST(frexp), + ADD_TEST(hypot), ADD_TEST(ilogb), ADD_TEST(isequal), + ADD_TEST(isfinite), ADD_TEST(isgreater), ADD_TEST(isgreaterequal), + ADD_TEST(isinf), ADD_TEST(isless), ADD_TEST(islessequal), + ADD_TEST(islessgreater), ADD_TEST(isnan), ADD_TEST(isnormal), + ADD_TEST(isnotequal), ADD_TEST(isordered), ADD_TEST(isunordered), + ADD_TEST(ldexp), ADD_TEST(lgamma), ADD_TEST(lgamma_r), + ADD_TEST(log), ADD_TEST(log2), ADD_TEST(log10), + ADD_TEST(log1p), ADD_TEST(logb), ADD_TEST(mad), + ADD_TEST(maxmag), ADD_TEST(minmag), ADD_TEST(modf), + ADD_TEST(nan), ADD_TEST(nextafter), ADD_TEST(pow), + ADD_TEST(pown), ADD_TEST(powr), ADD_TEST(remainder), + ADD_TEST(remquo), ADD_TEST(rint), ADD_TEST(rootn), + ADD_TEST(round), ADD_TEST(rsqrt), ADD_TEST(signbit), + ADD_TEST(sin), ADD_TEST(sincos), ADD_TEST(sinh), + ADD_TEST(sinpi), ADD_TEST(sqrt), ADD_TEST(sqrt_cr), + ADD_TEST(tan), ADD_TEST(tanh), ADD_TEST(tanpi), + ADD_TEST(tgamma), ADD_TEST(trunc), ADD_TEST(half_cos), + ADD_TEST(half_divide), ADD_TEST(half_exp), ADD_TEST(half_exp2), + ADD_TEST(half_exp10), ADD_TEST(half_log), ADD_TEST(half_log2), + ADD_TEST(half_log10), ADD_TEST(half_powr), ADD_TEST(half_recip), + ADD_TEST(half_rsqrt), ADD_TEST(half_sin), ADD_TEST(half_sqrt), + ADD_TEST(half_tan), ADD_TEST(add), ADD_TEST(subtract), + ADD_TEST(divide), ADD_TEST(divide_cr), ADD_TEST(multiply), + ADD_TEST(assignment), ADD_TEST(not ), ADD_TEST(erf), + ADD_TEST(erfc), }; #undef ADD_TEST diff --git a/test_conformance/math_brute_force/reference_math.cpp b/test_conformance/math_brute_force/reference_math.cpp index 049f2013b4..2d9a249cfb 100644 --- a/test_conformance/math_brute_force/reference_math.cpp +++ b/test_conformance/math_brute_force/reference_math.cpp @@ -2111,6 +2111,8 @@ int reference_not(double x) return r; } +double reference_tgamma(double x) { return tgamma(x); } + #pragma mark - #pragma mark Double testing @@ -5771,4 +5773,6 @@ long double reference_erfcl(long double x) { return erfc(x); } long double reference_erfl(long double x) { return erf(x); } double reference_erfc(double x) { return erfc(x); } -double reference_erf(double x) { return erf(x); } \ No newline at end of file +double reference_erf(double x) { return erf(x); } + +long double reference_tgammal(long double x) { return tgamma(x); } diff --git a/test_conformance/math_brute_force/reference_math.h b/test_conformance/math_brute_force/reference_math.h index b740787ff5..fd5e688d4a 100644 --- a/test_conformance/math_brute_force/reference_math.h +++ b/test_conformance/math_brute_force/reference_math.h @@ -116,6 +116,11 @@ double reference_ldexp(double x, int n); double reference_assignment(double x); int reference_not(double x); + +double reference_erfc(double x); +double reference_erf(double x); +double reference_tgamma(double x); + // -- for testing fast-relaxed double reference_relaxed_acos(double); @@ -238,6 +243,6 @@ int reference_notl(long double x); long double reference_erfcl(long double x); long double reference_erfl(long double x); -double reference_erfc(double x); -double reference_erf(double x); +long double reference_tgammal(long double x); + #endif