math_integral.h File Reference
#include "SYCL/builtins/math_symbols.h"
#include "SYCL/cpp_to_cl_cast.h"
#include "SYCL/gen_type_traits.h"
#include "SYCL/meta.h"
#include "SYCL/type_traits.h"
#include "computecpp/gsl/gsl"
Go to the source code of this file.
Namespaces | |
cl | |
deduce_type_t takes an arbitrary type and attempts to map it to a cl::sycl::cl_type . | |
cl::sycl | |
Macros | |
#define | COMPUTECPP_DETAIL_NAMESPACE abacus |
#define | COMPUTECPP_BUILTIN_INTEGER_INVOKE2(f, ...) COMPUTECPP_BUILTIN_INVOKE2(detail::integer::f, __VA_ARGS__) |
Functions | |
template<typename Integral , COMPUTECPP_REQUIRES((detail::builtin::is_geninteger< Integral >::value)) > | |
auto | cl::sycl::abs (Integral x) noexcept -> detail::make_genuint_t< Integral > |
Returns |x| More... | |
template<typename Integral , COMPUTECPP_REQUIRES((detail::builtin::is_geninteger< Integral >::value)) > | |
auto | cl::sycl::abs_diff (Integral x, Integral y) noexcept -> detail::make_genuint_t< Integral > |
Returns |x - y| without modulo overflow. More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::add_sat (Integral x, Integral y) noexcept |
Returns x + y and saturates the result. More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::hadd (Integral x, Integral y) noexcept |
Returns (x + y) >> 1 . More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::rhadd (Integral x, Integral y) noexcept |
Returns (x + y + 1) >> 1 . More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::clamp (Integral x, Integral minval, Integral maxval) noexcept |
Returns min(max(x, minval), maxval) . More... | |
template<typename Integral , typename S , COMPUTECPP_REQUIRES((detail::builtin::is_geninteger< Integral >::value && detail::builtin::is_sgeninteger< S >::value)) > | |
Integral | cl::sycl::clamp (Integral x, S minval, S maxval) noexcept |
Returns min(max(x, minval), maxval) . More... | |
template<typename Integral , typename return_t = detail::collapse_swizzled_vec_t<Integral>, COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
return_t | cl::sycl::clz (Integral x) noexcept |
Returns the number of leading 0-bits in x , starting at the most significant bit position. More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::mad_hi (Integral a, Integral b, Integral c) noexcept |
Returns mul_hi(a, b) + c . More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::mad_sat (Integral a, Integral b, Integral c) noexcept |
Returns a * b + c and saturates the result. More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::max (Integral x, Integral y) noexcept |
Returns y if x < y , otherwise it returns x. More... | |
template<typename Integral , typename S , COMPUTECPP_REQUIRES((detail::builtin::is_geninteger< Integral >::value && detail::builtin::is_sgeninteger< S >::value)) > | |
Integral | cl::sycl::max (Integral x, S y) noexcept |
Returns y if x < y , otherwise it returns x. More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::min (Integral x, Integral y) noexcept |
Returns y if y < x , otherwise it returns x. More... | |
template<typename Integral , typename S , COMPUTECPP_REQUIRES((detail::builtin::is_geninteger< Integral >::value && detail::builtin::is_sgeninteger< S >::value)) > | |
Integral | cl::sycl::min (Integral x, S y) noexcept |
Returns y if y < x , otherwise it returns x. More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::mul_hi (Integral x, Integral y) noexcept |
Computes x * y and returns the high half of the product of x and y . More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::rotate (Integral v, Integral i) noexcept |
For each element in v, the bits are shifted left by the number of bits given by the corresponding element in i (subject to usual shift modulo rules described in section 6.3). More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
Integral | cl::sycl::sub_sat (Integral x, Integral y) noexcept |
Returns x - y and saturates the result. More... | |
template<typename I1 , typename I2 , COMPUTECPP_REQUIRES( computecpp::gsl::or_< detail::builtin::is_geninteger8bit< I1 >::value && detail::builtin::is_ugeninteger8bit< I2 >::value, detail::builtin::is_geninteger16bit< I1 >::value && detail::builtin::is_ugeninteger16bit< I2 >::value, detail::builtin::is_geninteger32bit< I1 >::value && detail::builtin::is_ugeninteger32bit< I2 >::value >::value) > | |
auto | cl::sycl::upsample (I1 hi, I2 lo) noexcept -> decltype(::cl::sycl::detail::double_width_cast(std::declval< I1 >())) |
Returns result[i] = (hi[i] << 8) | lo[i] More... | |
template<typename Integral , typename return_t = detail::collapse_swizzled_vec_t<Integral>, COMPUTECPP_REQUIRES(detail::builtin::is_geninteger< Integral >::value) > | |
return_t | cl::sycl::popcount (Integral x) noexcept |
Returns the number of non-zero bits in x . More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger32bit< Integral >::value) > | |
Integral | cl::sycl::mad24 (Integral x, Integral y, Integral z) noexcept |
Multipy two 24-bit integer values x and y and add the 32-bit integer result to the 32-bit integer z . More... | |
template<typename Integral , COMPUTECPP_REQUIRES(detail::builtin::is_geninteger32bit< Integral >::value) > | |
Integral | cl::sycl::mul24 (Integral x, Integral y) noexcept |
Multiply two 24-bit integer values x and y . More... | |
Macro Definition Documentation
◆ COMPUTECPP_BUILTIN_INTEGER_INVOKE2
#define COMPUTECPP_BUILTIN_INTEGER_INVOKE2 | ( | f, | |
... | |||
) | COMPUTECPP_BUILTIN_INVOKE2(detail::integer::f, __VA_ARGS__) |
Definition at line 35 of file math_integral.h.
◆ COMPUTECPP_DETAIL_NAMESPACE
#define COMPUTECPP_DETAIL_NAMESPACE abacus |
Definition at line 28 of file math_integral.h.