1 #ifndef HIP_VECTOR_COMPATIBILITY_H 2 #define HIP_VECTOR_COMPATIBILITY_H 3 4 namespace hip_impl { 5 template <typename, typename, unsigned int> struct Scalar_accessor; 6 } // end namespace hip_impl 7 8 namespace Eigen { 9 namespace internal { 10 11 #define HIP_SCALAR_ACCESSOR_BUILDER(NAME) \ 12 template <typename T, typename U, unsigned int n> \ 13 struct NAME <hip_impl::Scalar_accessor<T, U, n>> : NAME <T> {}; 14 15 #define HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(NAME) \ 16 template <typename T, typename U, unsigned int n> \ 17 struct NAME##_impl <hip_impl::Scalar_accessor<T, U, n>> : NAME##_impl <T> {}; \ 18 template <typename T, typename U, unsigned int n> \ 19 struct NAME##_retval <hip_impl::Scalar_accessor<T, U, n>> : NAME##_retval <T> {}; 20 21 #define HIP_SCALAR_ACCESSOR_BUILDER_IGAMMA(NAME) \ 22 template <typename T, typename U, unsigned int n, IgammaComputationMode mode> \ 23 struct NAME <hip_impl::Scalar_accessor<T, U, n>, mode> : NAME <T, mode> {}; 24 25 #if EIGEN_HAS_C99_MATH 26 HIP_SCALAR_ACCESSOR_BUILDER(betainc_helper) 27 HIP_SCALAR_ACCESSOR_BUILDER(incbeta_cfe) 28 29 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(erf) 30 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(erfc) 31 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(igammac) 32 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(lgamma) 33 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(ndtri) 34 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(polygamma) 35 36 HIP_SCALAR_ACCESSOR_BUILDER_IGAMMA(igamma_generic_impl) 37 #endif 38 39 HIP_SCALAR_ACCESSOR_BUILDER(digamma_impl_maybe_poly) 40 HIP_SCALAR_ACCESSOR_BUILDER(zeta_impl_series) 41 42 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_i0) 43 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_i0e) 44 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_i1) 45 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_i1e) 46 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_j0) 47 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_j1) 48 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_k0) 49 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_k0e) 50 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_k1) 51 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_k1e) 52 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_y0) 53 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(bessel_y1) 54 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(betainc) 55 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(digamma) 56 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(gamma_sample_der_alpha) 57 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(igamma_der_a) 58 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(igamma) 59 HIP_SCALAR_ACCESSOR_BUILDER_RETVAL(zeta) 60 61 HIP_SCALAR_ACCESSOR_BUILDER_IGAMMA(igamma_series_impl) 62 HIP_SCALAR_ACCESSOR_BUILDER_IGAMMA(igammac_cf_impl) 63 64 } // end namespace internal 65 } // end namespace Eigen 66 67 #endif // HIP_VECTOR_COMPATIBILITY_H 68