summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrander <rander.wang@intel.com>2017-03-31 15:39:35 +0800
committerYang Rong <rong.r.yang@intel.com>2017-04-17 16:08:49 +0800
commit877ab2af1606fa0576b211a620b1926f661a2662 (patch)
treeffb0700cb15a77917b2ad8aec24bc395242b62cb
parent9db571f062a5ffcd01b3980a5e27057123da7a2d (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.cl5
-rw-r--r--backend/src/libocl/tmpl/ocl_math_common.tmpl.h1
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);