[libclc] r210891 - Implementations for exp(float) and exp(double) v2

Jeroen Ketema j.ketema at imperial.ac.uk
Fri Jun 13 02:40:10 PDT 2014


Author: jketema
Date: Fri Jun 13 04:40:09 2014
New Revision: 210891

URL: http://llvm.org/viewvc/llvm-project?rev=210891&view=rev
Log:
Implementations for exp(float) and exp(double) v2

Use separate implementations instead of a macro
to ensure the constant multiplied with is of
higher precision.

v2: Use the correct formula, spotted by Dan Liew <daniel.liew at imperial.ac.uk>

Reviewed-by: Aaron Warty <awatry at gmail.com>
Reviewed-by: Tom Stellard <tom at stellard.net>

Modified:
    libclc/trunk/generic/include/clc/math/exp.h
    libclc/trunk/generic/include/clc/math/gentype.inc
    libclc/trunk/generic/lib/SOURCES

Modified: libclc/trunk/generic/include/clc/math/exp.h
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/exp.h?rev=210891&r1=210890&r2=210891&view=diff
==============================================================================
--- libclc/trunk/generic/include/clc/math/exp.h (original)
+++ libclc/trunk/generic/include/clc/math/exp.h Fri Jun 13 04:40:09 2014
@@ -1,4 +1,9 @@
 #undef exp
 
-// exp(x) = exp2(x * log2(e)
-#define exp(val) (__clc_exp2((val) * 1.44269504f))
+#define __CLC_BODY <clc/math/unary_decl.inc>
+#define __CLC_FUNCTION exp
+
+#include <clc/math/gentype.inc>
+
+#undef __CLC_BODY
+#undef __CLC_FUNCTION

Modified: libclc/trunk/generic/include/clc/math/gentype.inc
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/gentype.inc?rev=210891&r1=210890&r2=210891&view=diff
==============================================================================
--- libclc/trunk/generic/include/clc/math/gentype.inc (original)
+++ libclc/trunk/generic/include/clc/math/gentype.inc Fri Jun 13 04:40:09 2014
@@ -1,4 +1,5 @@
 #define __CLC_SCALAR_GENTYPE float
+#define __CLC_FPSIZE 32
 
 #define __CLC_GENTYPE float
 #define __CLC_SCALAR
@@ -26,10 +27,12 @@
 #include __CLC_BODY
 #undef __CLC_GENTYPE
 
+#undef __CLC_FPSIZE
 #undef __CLC_SCALAR_GENTYPE
 
 #ifdef cl_khr_fp64
 #define __CLC_SCALAR_GENTYPE double
+#define __CLC_FPSIZE 64
 
 #define __CLC_SCALAR
 #define __CLC_GENTYPE double
@@ -57,6 +60,7 @@
 #include __CLC_BODY
 #undef __CLC_GENTYPE
 
+#undef __CLC_FPSIZE
 #undef __CLC_SCALAR_GENTYPE
 #endif
 

Modified: libclc/trunk/generic/lib/SOURCES
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=210891&r1=210890&r2=210891&view=diff
==============================================================================
--- libclc/trunk/generic/lib/SOURCES (original)
+++ libclc/trunk/generic/lib/SOURCES Fri Jun 13 04:40:09 2014
@@ -27,6 +27,7 @@ integer/sub_sat.cl
 integer/sub_sat_if.ll
 integer/sub_sat_impl.ll
 integer/upsample.cl
+math/exp.cl
 math/fmax.cl
 math/fmin.cl
 math/hypot.cl





More information about the cfe-commits mailing list