diff options
author | rander <rander.wang@intel.com> | 2017-03-31 15:39:35 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2017-04-17 16:08:49 +0800 |
commit | 877ab2af1606fa0576b211a620b1926f661a2662 (patch) | |
tree | ffb0700cb15a77917b2ad8aec24bc395242b62cb | |
parent | 9db571f062a5ffcd01b3980a5e27057123da7a2d (diff) |
backend: add double version of rsqrt
do it by 1/sqrt. need to be refined for performance
Signed-off-by: rander <rander.wang@intel.com>
Tested-by: Yang Rong <rong.r.yang@intel.com>
-rw-r--r-- | backend/src/libocl/tmpl/ocl_math_common.tmpl.cl | 5 | ||||
-rw-r--r-- | backend/src/libocl/tmpl/ocl_math_common.tmpl.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/backend/src/libocl/tmpl/ocl_math_common.tmpl.cl b/backend/src/libocl/tmpl/ocl_math_common.tmpl.cl index ad255889..d8e90576 100644 --- a/backend/src/libocl/tmpl/ocl_math_common.tmpl.cl +++ b/backend/src/libocl/tmpl/ocl_math_common.tmpl.cl @@ -2672,6 +2672,11 @@ OVERLOADABLE double rootn(double x, int n) } +OVERLOADABLE double rsqrt(double x) +{ + return 1.0/sqrt(x); +} + OVERLOADABLE double sin(double x) { double y[2],z=0.0; diff --git a/backend/src/libocl/tmpl/ocl_math_common.tmpl.h b/backend/src/libocl/tmpl/ocl_math_common.tmpl.h index 29b685c9..3a9c5e6c 100644 --- a/backend/src/libocl/tmpl/ocl_math_common.tmpl.h +++ b/backend/src/libocl/tmpl/ocl_math_common.tmpl.h @@ -71,6 +71,7 @@ OVERLOADABLE double remainder(double x, double p); OVERLOADABLE double rint(double x); OVERLOADABLE double round(double x); OVERLOADABLE double rootn(double x, int n); +OVERLOADABLE double rsqrt(double x); OVERLOADABLE double sin(double x); OVERLOADABLE double sinh(double x); OVERLOADABLE double sinpi(double x); |