DPC++ Runtime
Runtime libraries for oneAPI DPC++
math_functions.cpp File Reference
#include <cmath>
#include <sycl/detail/builtins/builtins.hpp>
#include "host_helper_macros.hpp"
Include dependency graph for math_functions.cpp:

Go to the source code of this file.

Namespaces

 sycl
 
 sycl::_V1
 

Macros

#define _USE_MATH_DEFINES
 
#define BUILTIN_GENF_CUSTOM(NUM_ARGS, NAME, IMPL)
 
#define BUILTIN_GENF(NUM_ARGS, NAME)
 
#define EXPORT_VEC_LAST_INT(NAME, TYPE, VL)
 
#define EXPORT_VEC_LAST_INT_1_16(NAME, TYPE)    FOR_VEC_1_16(EXPORT_VEC_LAST_INT, NAME, TYPE)
 
#define BUILTIN_MATH_LAST_INT(NAME, IMPL)
 

Functions

 sycl::_V1::BUILTIN_GENF_CUSTOM (ONE_ARG, acospi, [](auto x) -> decltype(x) { return std::acos(x)/M_PI;}) BUILTIN_GENF_CUSTOM(ONE_ARG
 
 sycl::_V1::BUILTIN_GENF_CUSTOM (ONE_ARG, atanpi, [](auto x) -> decltype(x) { return std::atan(x)/M_PI;}) BUILTIN_GENF_CUSTOM(TWO_ARGS
 
 sycl::_V1::BUILTIN_GENF_CUSTOM (ONE_ARG, cospi, [](auto x) -> decltype(x) { return std::sin(M_PI *(0.5 - x));}) BUILTIN_GENF_CUSTOM(ONE_ARG
 
 sycl::_V1::BUILTIN_GENF_CUSTOM (THREE_ARGS, mad, [](auto x, auto y, auto z) -> decltype(x) { return(x *y)+z;}) BUILTIN_GENF_CUSTOM(TWO_ARGS
 
 sycl::_V1::if (std::fabs(y) > std::fabs(x)) return y
 
 sycl::_V1::BUILTIN_GENF_CUSTOM (TWO_ARGS, minmag, [](auto x, auto y) -> decltype(x) { if(std::fabs(x)< std::fabs(y)) return x;if(std::fabs(y)< std::fabs(x)) return y;return std::fmin(x, y);}) BUILTIN_GENF_CUSTOM(TWO_ARGS
 
return(x >=T(0)) ? T(std sycl::_V1::BUILTIN_GENF_CUSTOM (ONE_ARG, rsqrt, [](auto x) -> decltype(x) { return decltype(x){1.0}/std::sqrt(x);}) BUILTIN_GENF_CUSTOM(ONE_ARG
 
 sycl::_V1::BUILTIN_GENF_CUSTOM (ONE_ARG, tanpi, [](auto x) -> decltype(x) { double y=x - std::floor(x);return 1.0/std::tan((0.5 - y) *M_PI);}) BUILTIN_GENF_CUSTOM(TWO_ARGS
 

Variables

 sycl::_V1::asinpi
 
 sycl::_V1::atan2pi
 
 sycl::_V1::exp10
 
 sycl::_V1::maxmag
 
 sycl::_V1::powr
 
return(x >=T(0)) ? T(std sycl::_V1::sinpi
 
 sycl::_V1::nextafter
 

Macro Definition Documentation

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

Definition at line 13 of file math_functions.cpp.

◆ BUILTIN_GENF

#define BUILTIN_GENF (   NUM_ARGS,
  NAME 
)
Value:
BUILTIN_GENF_CUSTOM(NUM_ARGS, NAME, [](NUM_ARGS##_AUTO_ARG) -> decltype(x) { \
return std::NAME(NUM_ARGS##_ARG); \
})
#define BUILTIN_GENF_CUSTOM(NUM_ARGS, NAME, IMPL)
autodecltype(x) x

Definition at line 30 of file math_functions.cpp.

◆ BUILTIN_GENF_CUSTOM

#define BUILTIN_GENF_CUSTOM (   NUM_ARGS,
  NAME,
  IMPL 
)
Value:
HOST_IMPL(NAME, IMPL) \
EXPORT_SCALAR_AND_VEC_1_16(NUM_ARGS, NAME, FP_TYPES)
#define FP_TYPES
#define HOST_IMPL(NAME,...)

Definition at line 23 of file math_functions.cpp.

◆ BUILTIN_MATH_LAST_INT

#define BUILTIN_MATH_LAST_INT (   NAME,
  IMPL 
)
Value:
__SYCL_EXPORT float __##NAME##_impl(float x, int y) { return IMPL(x, y); } \
__SYCL_EXPORT double __##NAME##_impl(double x, int y) { return IMPL(x, y); } \
__SYCL_EXPORT half __##NAME##_impl(half x, int y) { return IMPL(x, y); } \
HOST_IMPL(NAME, NAME /* delegate to scalar */) \
#define EXPORT_VEC_LAST_INT_1_16(NAME, TYPE)
sycl::detail::half_impl::half half
Definition: aliases.hpp:101

◆ EXPORT_VEC_LAST_INT

#define EXPORT_VEC_LAST_INT (   NAME,
  TYPE,
  VL 
)
Value:
vec<TYPE, VL> __SYCL_EXPORT __##NAME##_impl(vec<TYPE, VL> x, \
vec<int, VL> y) { \
return NAME##_host_impl(x, y); \
}

◆ EXPORT_VEC_LAST_INT_1_16

#define EXPORT_VEC_LAST_INT_1_16 (   NAME,
  TYPE 
)     FOR_VEC_1_16(EXPORT_VEC_LAST_INT, NAME, TYPE)