diff options
author | Joe Ramsay <Joe.Ramsay@arm.com> | 2022-04-29 11:46:41 +0100 |
---|---|---|
committer | Pierre Blanchard <pierre.blanchard@arm.com> | 2022-04-29 11:46:46 +0100 |
commit | 287e0c05f75986b4c6fdae171a37ca11344bb370 (patch) | |
tree | a4e4e561944ec21d5278900270b618190e020539 /pl/math/test/ulp_wrappers.h | |
parent | 5b61e12675c1e0f6b3b5af9be351caeb8d6116fd (diff) | |
download | arm-optimized-routines-287e0c05f75986b4c6fdae171a37ca11344bb370.tar.gz |
pl/math: Add Vector/Neon erfc
Neon erfc uses a helper, v_exp_tail, which is a vector variant of __exp_dd (as used by scalar erfc).
Maximum measured error is 3.5ulp.
Diffstat (limited to 'pl/math/test/ulp_wrappers.h')
-rw-r--r-- | pl/math/test/ulp_wrappers.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/pl/math/test/ulp_wrappers.h b/pl/math/test/ulp_wrappers.h index 1386fbd..5357852 100644 --- a/pl/math/test/ulp_wrappers.h +++ b/pl/math/test/ulp_wrappers.h @@ -25,12 +25,15 @@ static inline v_float argf(float x) { return (v_float){x,x,x,fv[secondcall]}; } static inline v_double argd(double x) { return (v_double){x,dv[secondcall]}; } static float v_log10f(float x) { return __v_log10f(argf(x))[0]; } +static double v_erfc(double x) { return __v_erfc(argd(x))[0]; } static double v_log10(double x) { return __v_log10(argd(x))[0]; } #ifdef __vpcs static float vn_log10f(float x) { return __vn_log10f(argf(x))[0]; } +static double vn_erfc(double x) { return __vn_erfc(argd(x))[0]; } static double vn_log10(double x) { return __vn_log10(argd(x))[0]; } static float Z_log10f(float x) { return _ZGVnN4v_log10f(argf(x))[0]; } +static double Z_erfc(double x) { return _ZGVnN2v_erfc(argd(x))[0]; } static double Z_log10(double x) { return _ZGVnN2v_log10(argd(x))[0]; } #endif #endif |