From 5f084e7ee190e49a82ff162a4cdfcaee68c37a18 Mon Sep 17 00:00:00 2001 From: Ruiling Song Date: Mon, 23 Jun 2014 16:34:54 +0800 Subject: [PATCH] GBE: fix some builtin math function __gen_ocl_exp stands for 2^x. So, use __gen_ocl_pow to implement native_exp(). Fix atanh implementation. Signed-off-by: Ruiling Song Reviewed-by: Zhigang Gong --- backend/src/ocl_stdlib.tmpl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/ocl_stdlib.tmpl.h b/backend/src/ocl_stdlib.tmpl.h index 1393ae7..ec945e4 100755 --- a/backend/src/ocl_stdlib.tmpl.h +++ b/backend/src/ocl_stdlib.tmpl.h @@ -2266,8 +2266,8 @@ INLINE_OVERLOADABLE float native_tan(float x) { INLINE_OVERLOADABLE float __gen_ocl_internal_tanpi(float x) { return native_tan(x * M_PI_F); } -INLINE_OVERLOADABLE float native_exp(float x) { return __gen_ocl_exp(x); } -INLINE_OVERLOADABLE float native_exp2(float x) { return __gen_ocl_pow(2, x); } +INLINE_OVERLOADABLE float native_exp2(float x) { return __gen_ocl_exp(x); } +INLINE_OVERLOADABLE float native_exp(float x) { return __gen_ocl_pow(M_E_F, x); } INLINE_OVERLOADABLE float native_exp10(float x) { return __gen_ocl_pow(10, x); } INLINE_OVERLOADABLE float __gen_ocl_internal_cbrt(float x) { /* copied from fdlibm */ @@ -4986,7 +4986,7 @@ INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_asinh (float x) INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_atanh (float x) { - return 0.5f * native_sqrt((1 + x) / (1 - x)); + return 0.5f * native_log((1 + x) / (1 - x)); } INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_cbrt (float x) -- 2.7.4