diff options
Diffstat (limited to 'generic/lib')
-rw-r--r-- | generic/lib/math/binary_impl.inc | 18 | ||||
-rw-r--r-- | generic/lib/math/fmax.cl | 4 | ||||
-rw-r--r-- | generic/lib/math/fmax.inc | 19 |
3 files changed, 21 insertions, 20 deletions
diff --git a/generic/lib/math/binary_impl.inc b/generic/lib/math/binary_impl.inc new file mode 100644 index 0000000..b6c6612 --- /dev/null +++ b/generic/lib/math/binary_impl.inc @@ -0,0 +1,18 @@ + +#ifndef SCALAR + +_CLC_OVERLOAD _CLC_DEF GENTYPE __clc_fmax(GENTYPE x, GENTYPE y) { + return FUNCTION_IMPL(x, y); +} + +#endif + +_CLC_OVERLOAD _CLC_DEF GENTYPE __clc_fmax(GENTYPE x, double y) { + GENTYPE vec_y = (GENTYPE) (y); + return FUNCTION_IMPL(x, vec_y); +} + +_CLC_OVERLOAD _CLC_DEF GENTYPE __clc_fmax(GENTYPE x, float y) { + GENTYPE vec_y = (GENTYPE) (y); + return FUNCTION_IMPL(x, vec_y); +} diff --git a/generic/lib/math/fmax.cl b/generic/lib/math/fmax.cl index 6f22f35..186d331 100644 --- a/generic/lib/math/fmax.cl +++ b/generic/lib/math/fmax.cl @@ -4,5 +4,7 @@ #pragma OPENCL EXTENSION cl_khr_fp64 : enable #endif -#define BODY <fmax.inc> +#define FUNCTION_IMPL(x, y) ((x) < (y) ? (y) : (x)) + +#define BODY <binary_impl.inc> #include <clc/math/gentype.inc> diff --git a/generic/lib/math/fmax.inc b/generic/lib/math/fmax.inc deleted file mode 100644 index 962bed9..0000000 --- a/generic/lib/math/fmax.inc +++ /dev/null @@ -1,19 +0,0 @@ -#define __CLC_MAX_IMPL(x, y) x < y ? y : x; - -#if GENTYPE != float && GENTYPE != double - -_CLC_OVERLOAD _CLC_DEF GENTYPE __clc_fmax(GENTYPE x, GENTYPE y) { - return __CLC_MAX_IMPL(x, y) -} - -#endif - -_CLC_OVERLOAD _CLC_DEF GENTYPE fmax(GENTYPE x, double y) { - GENTYPE vec_y = (GENTYPE) (y); - return __CLC_MAX_IMPL(x, vec_y); -} - -_CLC_OVERLOAD _CLC_DEF GENTYPE fmax(GENTYPE x, float y) { - GENTYPE vec_y = (GENTYPE) (y); - return __CLC_MAX_IMPL(x, vec_y); -} |