diff options
Diffstat (limited to 'libclc')
| -rw-r--r-- | libclc/generic/include/clc/clc.h | 2 | ||||
| -rw-r--r-- | libclc/generic/include/clc/math/exp10.h | 9 | ||||
| -rw-r--r-- | libclc/generic/include/clc/math/native_exp10.h | 1 | ||||
| -rw-r--r-- | libclc/generic/lib/SOURCES | 1 | ||||
| -rw-r--r-- | libclc/generic/lib/math/exp10.cl | 8 | ||||
| -rw-r--r-- | libclc/generic/lib/math/exp10.inc | 10 |
6 files changed, 31 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index e93a8c0ada4..e4fbfbaaa53 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -35,6 +35,7 @@ #include <clc/math/cos.h> #include <clc/math/ceil.h> #include <clc/math/exp.h> +#include <clc/math/exp10.h> #include <clc/math/exp2.h> #include <clc/math/fabs.h> #include <clc/math/floor.h> @@ -58,6 +59,7 @@ #include <clc/math/native_cos.h> #include <clc/math/native_divide.h> #include <clc/math/native_exp.h> +#include <clc/math/native_exp10.h> #include <clc/math/native_exp2.h> #include <clc/math/native_log.h> #include <clc/math/native_log2.h> diff --git a/libclc/generic/include/clc/math/exp10.h b/libclc/generic/include/clc/math/exp10.h new file mode 100644 index 00000000000..a1d426a20ab --- /dev/null +++ b/libclc/generic/include/clc/math/exp10.h @@ -0,0 +1,9 @@ +#undef exp10 + +#define __CLC_BODY <clc/math/unary_decl.inc> +#define __CLC_FUNCTION exp10 + +#include <clc/math/gentype.inc> + +#undef __CLC_BODY +#undef __CLC_FUNCTION diff --git a/libclc/generic/include/clc/math/native_exp10.h b/libclc/generic/include/clc/math/native_exp10.h new file mode 100644 index 00000000000..1156f58c53a --- /dev/null +++ b/libclc/generic/include/clc/math/native_exp10.h @@ -0,0 +1 @@ +#define native_exp10 exp10 diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES index 72f890b1c17..c3d07577d88 100644 --- a/libclc/generic/lib/SOURCES +++ b/libclc/generic/lib/SOURCES @@ -28,6 +28,7 @@ integer/sub_sat_if.ll integer/sub_sat_impl.ll integer/upsample.cl math/exp.cl +math/exp10.cl math/fmax.cl math/fmin.cl math/hypot.cl diff --git a/libclc/generic/lib/math/exp10.cl b/libclc/generic/lib/math/exp10.cl new file mode 100644 index 00000000000..c8039cb8ded --- /dev/null +++ b/libclc/generic/lib/math/exp10.cl @@ -0,0 +1,8 @@ +#include <clc/clc.h> + +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable +#endif + +#define __CLC_BODY <exp10.inc> +#include <clc/math/gentype.inc> diff --git a/libclc/generic/lib/math/exp10.inc b/libclc/generic/lib/math/exp10.inc new file mode 100644 index 00000000000..a592c194879 --- /dev/null +++ b/libclc/generic/lib/math/exp10.inc @@ -0,0 +1,10 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE exp10(__CLC_GENTYPE val) { + // exp10(x) = exp2(x * log2(10)) +#if __CLC_FPSIZE == 32 + return exp2(val * log2(10.0f)); +#elif __CLC_FPSIZE == 64 + return exp2(val * log2(10.0)); +#else +#error unknown _CLC_FPSIZE +#endif +} |

