10 #ifndef STOKHOS_IFPACK2_UQ_PCE_HPP
11 #define STOKHOS_IFPACK2_UQ_PCE_HPP
24 template <
typename XV,
class SizeType>
28 template <
typename S,
typename ... P,
class SizeType>
30 Kokkos::
View< Sacado::UQ::PCE<S>*,P... >,
33 typedef Kokkos::View< Sacado::UQ::PCE<S>*,P... >
XVector;
38 typedef typename array_type::non_const_value_type
value_type;
39 typedef Kokkos::ArithTraits<value_type>
KAT;
49 const typename XVector::non_const_value_type& min_val) :
52 m_min_val_mag(
KAT::
abs(m_min_val)),
56 KOKKOS_INLINE_FUNCTION
68 template<
class XV,
class SizeType>
71 template<
class S,
class ...P,
class SizeType>
73 Kokkos::
View< Sacado::UQ::PCE<S>*,P... >, SizeType > {
74 typedef Kokkos::View< Sacado::UQ::PCE<S>*,P... >
XV;
78 const typename XV::non_const_value_type& minVal)
82 "LocalReciprocalThreshold not implemented for non-constant minVal");
93 Kokkos::parallel_for( X.extent(0), op );
101 #endif // STOKHOS_IFPACK2_UQ_PCE_HPP
array_type::execution_space execution_space
array_type::non_const_value_type value_type
const value_type m_min_val_mag
Kokkos::ArithTraits< value_type > KAT
Kokkos::DefaultExecutionSpace execution_space
Kokkos::View< Sacado::UQ::PCE< S > *, P... > XVector
KOKKOS_INLINE_FUNCTION void raise_error(const char *msg)
KOKKOS_INLINE_FUNCTION constexpr std::enable_if< is_view_uq_pce< View< T, P...> >::value, unsigned >::type dimension_scalar(const View< T, P...> &view)
Kokkos::View< Sacado::UQ::PCE< S > *, P... > XV
V_ReciprocalThresholdSelfFunctor(const XVector &x, const typename XVector::non_const_value_type &min_val)
const value_type m_min_val
XVector::array_type array_type
KOKKOS_INLINE_FUNCTION bool is_constant(const T &x)
KOKKOS_INLINE_FUNCTION PCE< Storage > abs(const PCE< Storage > &a)
expr1 expr1 expr1 expr2 expr1 expr1 c expr2 expr1 c fastAccessCoeff(j)-expr2.val(j)
static void compute(const XV &X, const typename XV::non_const_value_type &minVal)
KOKKOS_INLINE_FUNCTION void operator()(const size_type i) const