|
| template<typename FROM > |
| using | strip_index_type_t = typename internal::StripIndexTypeT< FROM >::type |
| | Strips a strongly typed index to its underlying type In the case of a non-strongly typed index, the original type is returned. More...
|
| |
| template<typename FROM > |
| using | make_signed_t = typename std::conditional< std::is_floating_point< FROM >::value, std::common_type< FROM >, std::make_signed< FROM > >::type::type |
| | Converts a type into a signed type. Also handles floating point types as std::make_signed only supports integral types. More...
|
| |
| using | ListSegment = TypedListSegment< Index_type > |
| | Alias for A TypedListSegment<Index_type> More...
|
| |
| using | RangeSegment = TypedRangeSegment< Index_type > |
| | Alias for TypedRangeSegment<Index_type> More...
|
| |
| using | RangeStrideSegment = TypedRangeStrideSegment< Index_type > |
| | Alias for TypedRangeStrideSegment<Index_type> More...
|
| |
| template<camp::idx_t... args> |
| using | Segs = camp::list< internal::LambdaArg< internal::lambda_arg_seg_t, args >... > |
| |
| template<camp::idx_t... args> |
| using | Offsets = camp::list< internal::LambdaArg< internal::lambda_arg_offset_t, args >... > |
| |
| template<camp::idx_t... args> |
| using | Params = camp::list< internal::LambdaArg< internal::lambda_arg_param_t, args >... > |
| |
| template<typename T , camp::idx_t... values> |
| using | ValuesT = camp::list< internal::LambdaArg< internal::lambda_arg_value_t< T >, values >... > |
| |
| template<typename... Stmts> |
| using | KernelPolicy = internal::StatementList< Stmts... > |
| |
| template<camp::idx_t... ArgumentId> |
| using | ArgList = camp::idx_seq< ArgumentId... > |
| |
| using | LaunchContext = LaunchContextT< LaunchContextHostPolicy > |
| |
| template<typename POLICY_LIST > |
| using | loop_policy = typename POLICY_LIST::host_policy_t |
| |
| template<typename... Args> |
| using | xargs = camp::list< Args... > |
| | xargs alias. More...
|
| |
| using | LaunchContextType = typename RAJA::detail::launch_context_type< BODY >::type |
| |
| template<typename PolicyType , typename Trait > |
| using | policy_has_trait = policy_has_trait_impl< camp::decay< PolicyType >, Trait > |
| |
| template<Policy Pol, Pattern Pat, typename... Args> |
| using | make_policy_pattern_t = PolicyBaseT< Pol, Pat, Launch::undefined, Platform::undefined, Args... > |
| |
| template<Policy Policy_, Pattern Pattern_, Launch Launch_, Platform Platform_, typename... Args> |
| using | make_policy_pattern_launch_platform_t = PolicyBaseT< Policy_, Pattern_, Launch_, Platform_, Args... > |
| |
| template<Policy Policy_, Pattern Pattern_, Launch Launch_, typename... Args> |
| using | make_policy_pattern_launch_t = PolicyBaseT< Policy_, Pattern_, Launch_, Platform::undefined, Args... > |
| |
| template<Policy Policy_, Pattern Pattern_, Platform Platform_, typename... Args> |
| using | make_policy_pattern_platform_t = PolicyBaseT< Policy_, Pattern_, Launch::undefined, Platform_, Args... > |
| |
| using | sycl_global_item_0 = sycl_global_item< 0 > |
| |
| using | sycl_global_item_1 = sycl_global_item< 1 > |
| |
| using | sycl_global_item_2 = sycl_global_item< 2 > |
| |
| using | sycl_global_item_01 = sycl_global_item< 0, 1 > |
| |
| using | sycl_global_item_02 = sycl_global_item< 0, 2 > |
| |
| using | sycl_global_item_10 = sycl_global_item< 1, 0 > |
| |
| using | sycl_global_item_12 = sycl_global_item< 1, 2 > |
| |
| using | sycl_global_item_20 = sycl_global_item< 2, 0 > |
| |
| using | sycl_global_item_21 = sycl_global_item< 2, 1 > |
| |
| using | sycl_global_item_012 = sycl_global_item< 0, 1, 2 > |
| |
| using | sycl_global_item_021 = sycl_global_item< 0, 2, 1 > |
| |
| using | sycl_global_item_102 = sycl_global_item< 1, 0, 2 > |
| |
| using | sycl_global_item_120 = sycl_global_item< 1, 2, 0 > |
| |
| using | sycl_global_item_201 = sycl_global_item< 2, 0, 1 > |
| |
| using | sycl_global_item_210 = sycl_global_item< 2, 1, 0 > |
| |
| using | sycl_flatten_group_local_01_direct = sycl_flatten_group_local_direct< 0, 1 > |
| |
| using | sycl_flatten_group_local_02_direct = sycl_flatten_group_local_direct< 0, 2 > |
| |
| using | sycl_flatten_group_local_10_direct = sycl_flatten_group_local_direct< 1, 0 > |
| |
| using | sycl_flatten_group_local_12_direct = sycl_flatten_group_local_direct< 1, 2 > |
| |
| using | sycl_flatten_group_local_20_direct = sycl_flatten_group_local_direct< 2, 0 > |
| |
| using | sycl_flatten_group_local_21_direct = sycl_flatten_group_local_direct< 2, 1 > |
| |
| using | sycl_flatten_group_local_012_direct = sycl_flatten_group_local_direct< 0, 1, 2 > |
| |
| using | sycl_flatten_group_local_021_direct = sycl_flatten_group_local_direct< 0, 2, 1 > |
| |
| using | sycl_flatten_group_local_102_direct = sycl_flatten_group_local_direct< 1, 0, 2 > |
| |
| using | sycl_flatten_group_local_120_direct = sycl_flatten_group_local_direct< 1, 2, 0 > |
| |
| using | sycl_flatten_group_local_201_direct = sycl_flatten_group_local_direct< 2, 0, 1 > |
| |
| using | sycl_flatten_group_local_210_direct = sycl_flatten_group_local_direct< 2, 1, 0 > |
| |
| using | sycl_flatten_group_local_01_loop = sycl_flatten_group_local_loop< 0, 1 > |
| |
| using | sycl_flatten_group_local_02_loop = sycl_flatten_group_local_loop< 0, 2 > |
| |
| using | sycl_flatten_group_local_10_loop = sycl_flatten_group_local_loop< 1, 0 > |
| |
| using | sycl_flatten_group_local_12_loop = sycl_flatten_group_local_loop< 1, 2 > |
| |
| using | sycl_flatten_group_local_20_loop = sycl_flatten_group_local_loop< 2, 0 > |
| |
| using | sycl_flatten_group_local_21_loop = sycl_flatten_group_local_loop< 2, 1 > |
| |
| using | sycl_flatten_group_local_012_loop = sycl_flatten_group_local_loop< 0, 1, 2 > |
| |
| using | sycl_flatten_group_local_021_loop = sycl_flatten_group_local_loop< 0, 2, 1 > |
| |
| using | sycl_flatten_group_local_102_loop = sycl_flatten_group_local_loop< 1, 0, 2 > |
| |
| using | sycl_flatten_group_local_120_loop = sycl_flatten_group_local_loop< 1, 2, 0 > |
| |
| using | sycl_flatten_group_local_201_loop = sycl_flatten_group_local_loop< 2, 0, 1 > |
| |
| using | sycl_flatten_group_local_210_loop = sycl_flatten_group_local_loop< 2, 1, 0 > |
| |
| using | sycl_group_01_nested_direct = sycl_group_012_direct< 0, 1 > |
| |
| using | sycl_group_02_nested_direct = sycl_group_012_direct< 0, 2 > |
| |
| using | sycl_group_10_nested_direct = sycl_group_012_direct< 1, 0 > |
| |
| using | sycl_group_12_nested_direct = sycl_group_012_direct< 1, 2 > |
| |
| using | sycl_group_20_nested_direct = sycl_group_012_direct< 2, 0 > |
| |
| using | sycl_group_21_nested_direct = sycl_group_012_direct< 2, 1 > |
| |
| using | sycl_group_012_nested_direct = sycl_group_012_direct< 0, 1, 2 > |
| |
| using | sycl_group_021_nested_direct = sycl_group_012_direct< 0, 2, 1 > |
| |
| using | sycl_group_102_nested_direct = sycl_group_012_direct< 1, 0, 2 > |
| |
| using | sycl_group_120_nested_direct = sycl_group_012_direct< 1, 2, 0 > |
| |
| using | sycl_group_201_nested_direct = sycl_group_012_direct< 2, 0, 1 > |
| |
| using | sycl_group_210_nested_direct = sycl_group_012_direct< 2, 1, 0 > |
| |
| using | sycl_group_01_nested_loop = sycl_group_012_loop< 0, 1 > |
| |
| using | sycl_group_02_nested_loop = sycl_group_012_loop< 0, 2 > |
| |
| using | sycl_group_10_nested_loop = sycl_group_012_loop< 1, 0 > |
| |
| using | sycl_group_12_nested_loop = sycl_group_012_loop< 1, 2 > |
| |
| using | sycl_group_20_nested_loop = sycl_group_012_loop< 2, 0 > |
| |
| using | sycl_group_21_nested_loop = sycl_group_012_loop< 2, 1 > |
| |
| using | sycl_group_012_nested_loop = sycl_group_012_loop< 0, 1, 2 > |
| |
| using | sycl_group_021_nested_loop = sycl_group_012_loop< 0, 2, 1 > |
| |
| using | sycl_group_102_nested_loop = sycl_group_012_loop< 1, 0, 2 > |
| |
| using | sycl_group_120_nested_loop = sycl_group_012_loop< 1, 2, 0 > |
| |
| using | sycl_group_201_nested_loop = sycl_group_012_loop< 2, 0, 1 > |
| |
| using | sycl_group_210_nested_loop = sycl_group_012_loop< 2, 1, 0 > |
| |
| template<size_t n_dims, typename IdxLin = Index_type, ptrdiff_t StrideOne = -1> |
| using | Layout = detail::LayoutBase_impl< camp::make_idx_seq_t< n_dims >, IdxLin, StrideOne > |
| | A mapping of n-dimensional index space to a linear index space. More...
|
| |
| template<camp::idx_t... Sizes> |
| using | ParamList = camp::idx_seq< Sizes... > |
| |
| template<typename ValueType , typename Perm , typename Sizes , typename... IndexTypes> |
| using | TypedLocalArray = internal::TypedViewBase< ValueType, ValueType *, internal::getStaticLayoutType< Perm, Sizes >, camp::list< IndexTypes... > > |
| |
| template<typename ValueType , typename Perm , typename Sizes > |
| using | LocalArray = internal::TypedViewBase< ValueType, ValueType *, internal::getStaticLayoutType< Perm, Sizes >, internal::getDefaultIndexTypes< Perm > > |
| |
| using | PERM_I = camp::idx_seq< 0 > |
| |
| using | PERM_IJ = camp::idx_seq< 0, 1 > |
| |
| using | PERM_JI = camp::idx_seq< 1, 0 > |
| |
| using | PERM_IJK = camp::idx_seq< 0, 1, 2 > |
| |
| using | PERM_IKJ = camp::idx_seq< 0, 2, 1 > |
| |
| using | PERM_JIK = camp::idx_seq< 1, 0, 2 > |
| |
| using | PERM_JKI = camp::idx_seq< 1, 2, 0 > |
| |
| using | PERM_KIJ = camp::idx_seq< 2, 0, 1 > |
| |
| using | PERM_KJI = camp::idx_seq< 2, 1, 0 > |
| |
| using | PERM_IJKL = camp::idx_seq< 0, 1, 2, 3 > |
| |
| using | PERM_IJLK = camp::idx_seq< 0, 1, 3, 2 > |
| |
| using | PERM_IKJL = camp::idx_seq< 0, 2, 1, 3 > |
| |
| using | PERM_IKLJ = camp::idx_seq< 0, 2, 3, 1 > |
| |
| using | PERM_ILJK = camp::idx_seq< 0, 3, 1, 2 > |
| |
| using | PERM_ILKJ = camp::idx_seq< 0, 3, 2, 1 > |
| |
| using | PERM_JIKL = camp::idx_seq< 1, 0, 2, 3 > |
| |
| using | PERM_JILK = camp::idx_seq< 1, 0, 3, 2 > |
| |
| using | PERM_JKIL = camp::idx_seq< 1, 2, 0, 3 > |
| |
| using | PERM_JKLI = camp::idx_seq< 1, 2, 3, 0 > |
| |
| using | PERM_JLIK = camp::idx_seq< 1, 3, 0, 2 > |
| |
| using | PERM_JLKI = camp::idx_seq< 1, 3, 2, 0 > |
| |
| using | PERM_KIJL = camp::idx_seq< 2, 0, 1, 3 > |
| |
| using | PERM_KILJ = camp::idx_seq< 2, 0, 3, 1 > |
| |
| using | PERM_KJIL = camp::idx_seq< 2, 1, 0, 3 > |
| |
| using | PERM_KJLI = camp::idx_seq< 2, 1, 3, 0 > |
| |
| using | PERM_KLIJ = camp::idx_seq< 2, 3, 0, 1 > |
| |
| using | PERM_KLJI = camp::idx_seq< 2, 3, 1, 0 > |
| |
| using | PERM_LIJK = camp::idx_seq< 3, 0, 1, 2 > |
| |
| using | PERM_LIKJ = camp::idx_seq< 3, 0, 2, 1 > |
| |
| using | PERM_LJIK = camp::idx_seq< 3, 1, 0, 2 > |
| |
| using | PERM_LJKI = camp::idx_seq< 3, 1, 2, 0 > |
| |
| using | PERM_LKIJ = camp::idx_seq< 3, 2, 0, 1 > |
| |
| using | PERM_LKJI = camp::idx_seq< 3, 2, 1, 0 > |
| |
| using | PERM_IJKLM = camp::idx_seq< 0, 1, 2, 3, 4 > |
| |
| using | PERM_IJKML = camp::idx_seq< 0, 1, 2, 4, 3 > |
| |
| using | PERM_IJLKM = camp::idx_seq< 0, 1, 3, 2, 4 > |
| |
| using | PERM_IJLMK = camp::idx_seq< 0, 1, 3, 4, 2 > |
| |
| using | PERM_IJMKL = camp::idx_seq< 0, 1, 4, 2, 3 > |
| |
| using | PERM_IJMLK = camp::idx_seq< 0, 1, 4, 3, 2 > |
| |
| using | PERM_IKJLM = camp::idx_seq< 0, 2, 1, 3, 4 > |
| |
| using | PERM_IKJML = camp::idx_seq< 0, 2, 1, 4, 3 > |
| |
| using | PERM_IKLJM = camp::idx_seq< 0, 2, 3, 1, 4 > |
| |
| using | PERM_IKLMJ = camp::idx_seq< 0, 2, 3, 4, 1 > |
| |
| using | PERM_IKMJL = camp::idx_seq< 0, 2, 4, 1, 3 > |
| |
| using | PERM_IKMLJ = camp::idx_seq< 0, 2, 4, 3, 1 > |
| |
| using | PERM_ILJKM = camp::idx_seq< 0, 3, 1, 2, 4 > |
| |
| using | PERM_ILJMK = camp::idx_seq< 0, 3, 1, 4, 2 > |
| |
| using | PERM_ILKJM = camp::idx_seq< 0, 3, 2, 1, 4 > |
| |
| using | PERM_ILKMJ = camp::idx_seq< 0, 3, 2, 4, 1 > |
| |
| using | PERM_ILMJK = camp::idx_seq< 0, 3, 4, 1, 2 > |
| |
| using | PERM_ILMKJ = camp::idx_seq< 0, 3, 4, 2, 1 > |
| |
| using | PERM_IMJKL = camp::idx_seq< 0, 4, 1, 2, 3 > |
| |
| using | PERM_IMJLK = camp::idx_seq< 0, 4, 1, 3, 2 > |
| |
| using | PERM_IMKJL = camp::idx_seq< 0, 4, 2, 1, 3 > |
| |
| using | PERM_IMKLJ = camp::idx_seq< 0, 4, 2, 3, 1 > |
| |
| using | PERM_IMLJK = camp::idx_seq< 0, 4, 3, 1, 2 > |
| |
| using | PERM_IMLKJ = camp::idx_seq< 0, 4, 3, 2, 1 > |
| |
| using | PERM_JIKLM = camp::idx_seq< 1, 0, 2, 3, 4 > |
| |
| using | PERM_JIKML = camp::idx_seq< 1, 0, 2, 4, 3 > |
| |
| using | PERM_JILKM = camp::idx_seq< 1, 0, 3, 2, 4 > |
| |
| using | PERM_JILMK = camp::idx_seq< 1, 0, 3, 4, 2 > |
| |
| using | PERM_JIMKL = camp::idx_seq< 1, 0, 4, 2, 3 > |
| |
| using | PERM_JIMLK = camp::idx_seq< 1, 0, 4, 3, 2 > |
| |
| using | PERM_JKILM = camp::idx_seq< 1, 2, 0, 3, 4 > |
| |
| using | PERM_JKIML = camp::idx_seq< 1, 2, 0, 4, 3 > |
| |
| using | PERM_JKLIM = camp::idx_seq< 1, 2, 3, 0, 4 > |
| |
| using | PERM_JKLMI = camp::idx_seq< 1, 2, 3, 4, 0 > |
| |
| using | PERM_JKMIL = camp::idx_seq< 1, 2, 4, 0, 3 > |
| |
| using | PERM_JKMLI = camp::idx_seq< 1, 2, 4, 3, 0 > |
| |
| using | PERM_JLIKM = camp::idx_seq< 1, 3, 0, 2, 4 > |
| |
| using | PERM_JLIMK = camp::idx_seq< 1, 3, 0, 4, 2 > |
| |
| using | PERM_JLKIM = camp::idx_seq< 1, 3, 2, 0, 4 > |
| |
| using | PERM_JLKMI = camp::idx_seq< 1, 3, 2, 4, 0 > |
| |
| using | PERM_JLMIK = camp::idx_seq< 1, 3, 4, 0, 2 > |
| |
| using | PERM_JLMKI = camp::idx_seq< 1, 3, 4, 2, 0 > |
| |
| using | PERM_JMIKL = camp::idx_seq< 1, 4, 0, 2, 3 > |
| |
| using | PERM_JMILK = camp::idx_seq< 1, 4, 0, 3, 2 > |
| |
| using | PERM_JMKIL = camp::idx_seq< 1, 4, 2, 0, 3 > |
| |
| using | PERM_JMKLI = camp::idx_seq< 1, 4, 2, 3, 0 > |
| |
| using | PERM_JMLIK = camp::idx_seq< 1, 4, 3, 0, 2 > |
| |
| using | PERM_JMLKI = camp::idx_seq< 1, 4, 3, 2, 0 > |
| |
| using | PERM_KIJLM = camp::idx_seq< 2, 0, 1, 3, 4 > |
| |
| using | PERM_KIJML = camp::idx_seq< 2, 0, 1, 4, 3 > |
| |
| using | PERM_KILJM = camp::idx_seq< 2, 0, 3, 1, 4 > |
| |
| using | PERM_KILMJ = camp::idx_seq< 2, 0, 3, 4, 1 > |
| |
| using | PERM_KIMJL = camp::idx_seq< 2, 0, 4, 1, 3 > |
| |
| using | PERM_KIMLJ = camp::idx_seq< 2, 0, 4, 3, 1 > |
| |
| using | PERM_KJILM = camp::idx_seq< 2, 1, 0, 3, 4 > |
| |
| using | PERM_KJIML = camp::idx_seq< 2, 1, 0, 4, 3 > |
| |
| using | PERM_KJLIM = camp::idx_seq< 2, 1, 3, 0, 4 > |
| |
| using | PERM_KJLMI = camp::idx_seq< 2, 1, 3, 4, 0 > |
| |
| using | PERM_KJMIL = camp::idx_seq< 2, 1, 4, 0, 3 > |
| |
| using | PERM_KJMLI = camp::idx_seq< 2, 1, 4, 3, 0 > |
| |
| using | PERM_KLIJM = camp::idx_seq< 2, 3, 0, 1, 4 > |
| |
| using | PERM_KLIMJ = camp::idx_seq< 2, 3, 0, 4, 1 > |
| |
| using | PERM_KLJIM = camp::idx_seq< 2, 3, 1, 0, 4 > |
| |
| using | PERM_KLJMI = camp::idx_seq< 2, 3, 1, 4, 0 > |
| |
| using | PERM_KLMIJ = camp::idx_seq< 2, 3, 4, 0, 1 > |
| |
| using | PERM_KLMJI = camp::idx_seq< 2, 3, 4, 1, 0 > |
| |
| using | PERM_KMIJL = camp::idx_seq< 2, 4, 0, 1, 3 > |
| |
| using | PERM_KMILJ = camp::idx_seq< 2, 4, 0, 3, 1 > |
| |
| using | PERM_KMJIL = camp::idx_seq< 2, 4, 1, 0, 3 > |
| |
| using | PERM_KMJLI = camp::idx_seq< 2, 4, 1, 3, 0 > |
| |
| using | PERM_KMLIJ = camp::idx_seq< 2, 4, 3, 0, 1 > |
| |
| using | PERM_KMLJI = camp::idx_seq< 2, 4, 3, 1, 0 > |
| |
| using | PERM_LIJKM = camp::idx_seq< 3, 0, 1, 2, 4 > |
| |
| using | PERM_LIJMK = camp::idx_seq< 3, 0, 1, 4, 2 > |
| |
| using | PERM_LIKJM = camp::idx_seq< 3, 0, 2, 1, 4 > |
| |
| using | PERM_LIKMJ = camp::idx_seq< 3, 0, 2, 4, 1 > |
| |
| using | PERM_LIMJK = camp::idx_seq< 3, 0, 4, 1, 2 > |
| |
| using | PERM_LIMKJ = camp::idx_seq< 3, 0, 4, 2, 1 > |
| |
| using | PERM_LJIKM = camp::idx_seq< 3, 1, 0, 2, 4 > |
| |
| using | PERM_LJIMK = camp::idx_seq< 3, 1, 0, 4, 2 > |
| |
| using | PERM_LJKIM = camp::idx_seq< 3, 1, 2, 0, 4 > |
| |
| using | PERM_LJKMI = camp::idx_seq< 3, 1, 2, 4, 0 > |
| |
| using | PERM_LJMIK = camp::idx_seq< 3, 1, 4, 0, 2 > |
| |
| using | PERM_LJMKI = camp::idx_seq< 3, 1, 4, 2, 0 > |
| |
| using | PERM_LKIJM = camp::idx_seq< 3, 2, 0, 1, 4 > |
| |
| using | PERM_LKIMJ = camp::idx_seq< 3, 2, 0, 4, 1 > |
| |
| using | PERM_LKJIM = camp::idx_seq< 3, 2, 1, 0, 4 > |
| |
| using | PERM_LKJMI = camp::idx_seq< 3, 2, 1, 4, 0 > |
| |
| using | PERM_LKMIJ = camp::idx_seq< 3, 2, 4, 0, 1 > |
| |
| using | PERM_LKMJI = camp::idx_seq< 3, 2, 4, 1, 0 > |
| |
| using | PERM_LMIJK = camp::idx_seq< 3, 4, 0, 1, 2 > |
| |
| using | PERM_LMIKJ = camp::idx_seq< 3, 4, 0, 2, 1 > |
| |
| using | PERM_LMJIK = camp::idx_seq< 3, 4, 1, 0, 2 > |
| |
| using | PERM_LMJKI = camp::idx_seq< 3, 4, 1, 2, 0 > |
| |
| using | PERM_LMKIJ = camp::idx_seq< 3, 4, 2, 0, 1 > |
| |
| using | PERM_LMKJI = camp::idx_seq< 3, 4, 2, 1, 0 > |
| |
| using | PERM_MIJKL = camp::idx_seq< 4, 0, 1, 2, 3 > |
| |
| using | PERM_MIJLK = camp::idx_seq< 4, 0, 1, 3, 2 > |
| |
| using | PERM_MIKJL = camp::idx_seq< 4, 0, 2, 1, 3 > |
| |
| using | PERM_MIKLJ = camp::idx_seq< 4, 0, 2, 3, 1 > |
| |
| using | PERM_MILJK = camp::idx_seq< 4, 0, 3, 1, 2 > |
| |
| using | PERM_MILKJ = camp::idx_seq< 4, 0, 3, 2, 1 > |
| |
| using | PERM_MJIKL = camp::idx_seq< 4, 1, 0, 2, 3 > |
| |
| using | PERM_MJILK = camp::idx_seq< 4, 1, 0, 3, 2 > |
| |
| using | PERM_MJKIL = camp::idx_seq< 4, 1, 2, 0, 3 > |
| |
| using | PERM_MJKLI = camp::idx_seq< 4, 1, 2, 3, 0 > |
| |
| using | PERM_MJLIK = camp::idx_seq< 4, 1, 3, 0, 2 > |
| |
| using | PERM_MJLKI = camp::idx_seq< 4, 1, 3, 2, 0 > |
| |
| using | PERM_MKIJL = camp::idx_seq< 4, 2, 0, 1, 3 > |
| |
| using | PERM_MKILJ = camp::idx_seq< 4, 2, 0, 3, 1 > |
| |
| using | PERM_MKJIL = camp::idx_seq< 4, 2, 1, 0, 3 > |
| |
| using | PERM_MKJLI = camp::idx_seq< 4, 2, 1, 3, 0 > |
| |
| using | PERM_MKLIJ = camp::idx_seq< 4, 2, 3, 0, 1 > |
| |
| using | PERM_MKLJI = camp::idx_seq< 4, 2, 3, 1, 0 > |
| |
| using | PERM_MLIJK = camp::idx_seq< 4, 3, 0, 1, 2 > |
| |
| using | PERM_MLIKJ = camp::idx_seq< 4, 3, 0, 2, 1 > |
| |
| using | PERM_MLJIK = camp::idx_seq< 4, 3, 1, 0, 2 > |
| |
| using | PERM_MLJKI = camp::idx_seq< 4, 3, 1, 2, 0 > |
| |
| using | PERM_MLKIJ = camp::idx_seq< 4, 3, 2, 0, 1 > |
| |
| using | PERM_MLKJI = camp::idx_seq< 4, 3, 2, 1, 0 > |
| |
| template<typename Perm > |
| using | invert_permutation = typename internal::InversePermutationHelper< camp::make_idx_seq_t< camp::size< Perm >::value >, Perm >::type |
| |
| template<camp::idx_t... Ints> |
| using | Perm = camp::idx_seq< Ints... > |
| |
| template<camp::idx_t N> |
| using | MakePerm = typename camp::make_idx_seq< N >::type |
| |
| template<typename T , typename BinaryOp > |
| using | HighAccuracyReduce = std::conditional_t< RAJA::operators::is_fp_associative< T >::value, BinaryTreeReduce< T, BinaryOp >, LeftFoldReduce< T, BinaryOp > > |
| |
| template<typename Perm , typename IdxLin , camp::idx_t... Sizes> |
| using | StaticLayoutT = typename detail::StaticLayoutMaker< Perm, IdxLin, camp::int_seq< IdxLin, Sizes... >, camp::make_int_seq_t< IdxLin, sizeof...(Sizes)>, void >::type |
| |
| template<typename Perm , camp::idx_t... Sizes> |
| using | StaticLayout = StaticLayoutT< Perm, camp::idx_t, Sizes... > |
| |
| template<typename Perm , typename IdxLin , typename TypeList , camp::idx_t... Sizes> |
| using | TypedStaticLayout = typename detail::StaticLayoutMaker< Perm, IdxLin, camp::int_seq< IdxLin, Sizes... >, camp::make_int_seq_t< IdxLin, sizeof...(Sizes)>, TypeList >::type |
| |
| using | Index_type = std::ptrdiff_t |
| |
| using | TDRAReal_ptr = Real_type *RAJA_RESTRICT |
| | RAJA scalar type definitions. More...
|
| |
| using | const_TDRAReal_ptr = const TDRAReal_ptr |
| |
| template<typename ValueType , typename LayoutType , typename PointerType = ValueType*> |
| using | View = internal::ViewBase< ValueType, PointerType, LayoutType > |
| |
| template<typename ValueType , typename LayoutType , typename... IndexTypes> |
| using | TypedView = internal::TypedViewBase< ValueType, ValueType *, LayoutType, camp::list< IndexTypes... > > |
| |
| template<typename Seq1 , typename Seq2 > |
| using | cat_seq_t = typename cat_seq< Seq1, Seq2 >::type |
| |
| template<camp::idx_t Offset, typename Seq > |
| using | offset_seq_t = typename offset_seq< Offset, Seq >::type |
| |
| template<camp::idx_t I, typename ZT > |
| using | zip_tuple_element_t = typename zip_tuple_element< I, ZT >::type |
| |
| template<typename... Ts> |
| using | zip_ref = zip_tuple< false, Ts... > |
| |
| template<typename... Ts> |
| using | zip_val = zip_tuple< true, Ts... > |
| |
|
| void | buildIndexSetAligned (RAJA::TypedIndexSet< RAJA::RangeSegment, RAJA::ListSegment > &iset, camp::resources::Resource work_res, const RAJA::Index_type *const indices_in, RAJA::Index_type length, RAJA::Index_type range_min_length, RAJA::Index_type range_align) |
| | Generate an index set with aligned Range segments and List segments, as needed, from given array of indices. More...
|
| |
| void | buildLockFreeBlockIndexset (RAJA::TypedIndexSet< RAJA::RangeSegment > &iset, int fastDim, int midDim, int slowDim) |
| | Generate a lock-free "block" index set (planar division) containing range segments. More...
|
| |
| void | buildLockFreeColorIndexset (RAJA::TypedIndexSet< RAJA::RangeSegment, RAJA::ListSegment > &iset, camp::resources::Resource work_res, RAJA::Index_type const *domainToRange, int numEntity, int numRangePerDomain, int numEntityRange, RAJA::Index_type *elemPermutation=nullptr, RAJA::Index_type *ielemPermutation=nullptr) |
| | Generate a lock-free "color" index set containing range and list segments. More...
|
| |
| template<typename TO , typename FROM > |
| constexpr RAJA_HOST_DEVICE RAJA_INLINE TO | convertIndex (FROM const val) |
| | Function provides a way to take either an int or any Index<> type, and convert it to another type, possibly another Index or an int. More...
|
| |
| template<typename FROM > |
| constexpr RAJA_HOST_DEVICE RAJA_INLINE std::enable_if< std::is_base_of< IndexValueBase, FROM >::value, typename FROM::value_type >::type | stripIndexType (FROM const val) |
| | Function that strips the strongly typed Index<> and returns its underlying value_type value. More...
|
| |
| template<typename FROM > |
| constexpr RAJA_HOST_DEVICE RAJA_INLINE std::enable_if<!std::is_base_of< IndexValueBase, FROM >::value, FROM >::type | stripIndexType (FROM const val) |
| |
| template<typename BeginT , typename EndT , typename Common = detail::common_type_t<BeginT, EndT>> |
| RAJA_HOST_DEVICE TypedRangeSegment< Common > | make_range (BeginT &&begin, EndT &&end) |
| | Function to make a TypedRangeSegment for the interval [begin, end) More...
|
| |
| template<typename BeginT , typename EndT , typename StrideT , typename Common = detail::common_type_t<BeginT, EndT>> |
| RAJA_HOST_DEVICE TypedRangeStrideSegment< Common > | make_strided_range (BeginT &&begin, EndT &&end, StrideT &&stride) |
| | Function to make a TypedRangeStride Segment for the interval [begin, end) with given stride. More...
|
| |
| class | RAJA_ALIGNED_ATTR (256) DepGraphNode |
| | Class defining a simple semephore-based data structure for managing a node in a dependency graph. More...
|
| |
| template<typename Op , typename Arg1 > |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | foldl (Op &&RAJA_UNUSED_ARG(operation), Arg1 &&arg) -> typename detail::foldl_impl< Op, Arg1 >::Ret |
| |
| template<typename Op , typename Arg1 , typename Arg2 > |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | foldl (Op &&operation, Arg1 &&arg1, Arg2 &&arg2) -> typename detail::foldl_impl< Op, Arg1, Arg2 >::Ret |
| |
| template<typename Op , typename Arg1 , typename Arg2 , typename Arg3 , typename... Rest> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | foldl (Op &&operation, Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Rest &&... rest) -> typename detail::foldl_impl< Op, Arg1, Arg2, Arg3, Rest... >::Ret |
| |
| template<typename Result , typename... Args> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE Result | sum (Args... args) |
| |
| template<typename Result , typename... Args> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE Result | product (Args... args) |
| |
| template<typename Result , typename... Args> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE Result | max (Args... args) |
| |
| template<typename Result , typename... Args> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE Result | min (Args... args) |
| |
| void * | allocate_aligned (size_t alignment, size_t size) |
| |
| template<typename T > |
| T * | allocate_aligned_type (size_t alignment, size_t size) |
| |
| void | free_aligned (void *ptr) |
| |
| template<typename ThreadPolicy = RAJA::detail::active_auto_thread> |
| RAJA_INLINE int | getMaxOMPThreadsCPU () |
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicLoad (T *acc) |
| | Atomic load. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE void | atomicStore (T *acc, T value) |
| | Atomic store. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicAdd (T *acc, T value) |
| | Atomic add. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicSub (T *acc, T value) |
| | Atomic subtract. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicMin (T *acc, T value) |
| | Atomic minimum equivalent to (*acc) = std::min(*acc, value) More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicMax (T *acc, T value) |
| | Atomic maximum equivalent to (*acc) = std::max(*acc, value) More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicInc (T *acc) |
| | Atomic increment. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicInc (T *acc, T compare) |
| | Atomic increment with bound Equivalent to *acc = ((*acc >= compare) ? 0 : ((*acc)+1)) This is for compatability with the CUDA atomicInc. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicDec (T *acc) |
| | Atomic decrement. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicDec (T *acc, T compare) |
| | Atomic decrement with bound Equivalent to *acc = (((*acc==0)|(*acc>compare))?compare:((*acc)-1)) This is for compatability with the CUDA atomicDec. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicAnd (T *acc, T value) |
| | Atomic bitwise AND equivalent to (*acc) = (*acc) & value This only works with integral data types. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicOr (T *acc, T value) |
| | Atomic bitwise OR equivalent to (*acc) = (*acc) | value This only works with integral data types. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicXor (T *acc, T value) |
| | Atomic bitwise XOR equivalent to (*acc) = (*acc) ^ value This only works with integral data types. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicExchange (T *acc, T value) |
| | Atomic value exchange. More...
|
| |
| template<typename Policy , typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE T | atomicCAS (T *acc, T compare, T value) |
| | Atomic compare and swap. More...
|
| |
| template<typename Iter > |
| RAJA_HOST_DEVICE RAJA_INLINE void | safe_iter_swap (Iter lhs, Iter rhs) |
| | swap values at iterators lhs and rhs More...
|
| |
| template<typename Iter > |
| RAJA_HOST_DEVICE RAJA_INLINE Iter | next (Iter it) |
| | returns iterator to next item More...
|
| |
| template<typename Iter > |
| RAJA_HOST_DEVICE RAJA_INLINE Iter | prev (Iter it) |
| | returns iterator to next item More...
|
| |
| template<typename ExecutionPolicy , typename Res , typename IdxSet , typename... Params> |
| RAJA_INLINE resources::EventProxy< Res > | forall_Icount (ExecutionPolicy &&p, Res r, IdxSet &&c, Params &&... params) |
| | Generic dispatch over index set with icount with a value-based policy. More...
|
| |
| template<typename ExecutionPolicy , typename IdxSet , typename LoopBody , typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE resources::EventProxy< Res > | forall_Icount (ExecutionPolicy &&p, IdxSet &&c, LoopBody &&loop_body) |
| |
| template<typename ExecutionPolicy , typename Res , typename IdxSet , typename... Params> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_indexset_policy< ExecutionPolicy > > | forall (ExecutionPolicy &&p, Res r, IdxSet &&c, Params &&... params) |
| | Generic dispatch over index set with a value-based policy. More...
|
| |
| template<typename ExecutionPolicy , typename IdxSet , typename LoopBody , typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_indexset_policy< ExecutionPolicy > > | forall (ExecutionPolicy &&p, IdxSet &&c, LoopBody &&loop_body) |
| |
| template<typename ExecutionPolicy , typename Container , typename LoopBody , typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_multi_policy< ExecutionPolicy >, type_traits::is_range< Container > > | forall (ExecutionPolicy &&p, Container &&c, LoopBody &&loop_body) |
| | Generic dispatch over containers with a multi policy. More...
|
| |
| template<typename ExecutionPolicy , typename Res , typename Container , typename IndexType , typename FirstParam , typename... Params> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_range< Container >, type_traits::is_integral< IndexType > > | forall_Icount (ExecutionPolicy &&p, Res r, Container &&c, IndexType icount, FirstParam &&first, Params &&... params) |
| | Generic dispatch over containers with icount with a value-based policy. More...
|
| |
| template<typename ExecutionPolicy , typename Container , typename IndexType , typename LoopBody , typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_range< Container >, concepts::negate< type_traits::is_indexset_policy< ExecutionPolicy > >, type_traits::is_integral< IndexType > > | forall_Icount (ExecutionPolicy &&p, Container &&c, IndexType icount, LoopBody &&loop_body) |
| |
| template<typename ExecutionPolicy , typename Res , typename Container , typename... Params> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, concepts::negate< type_traits::is_indexset_policy< ExecutionPolicy > >, concepts::negate< type_traits::is_multi_policy< ExecutionPolicy > >, type_traits::is_range< Container > > | forall (ExecutionPolicy &&p, Res r, Container &&c, Params &&... params) |
| | Generic dispatch over containers with a value-based policy. More...
|
| |
| template<typename ExecutionPolicy , typename Container , typename LoopBody , typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, concepts::negate< type_traits::is_indexset_policy< ExecutionPolicy > >, concepts::negate< type_traits::is_multi_policy< ExecutionPolicy > >, type_traits::is_range< Container > > | forall (ExecutionPolicy &&p, Container &&c, LoopBody &&loop_body) |
| |
| template<typename ExecutionPolicy , typename... Args, typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE resources::EventProxy< Res > | forall (Args &&... args) |
| | Conversion from template-based policy to value-based policy for forall. More...
|
| |
| template<typename ExecutionPolicy , typename Res , typename... Args> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_resource< Res > > | forall (Res r, Args &&... args) |
| |
| template<typename ExecutionPolicy , typename... Args, typename Res = typename resources::get_resource<ExecutionPolicy>::type> |
| RAJA_INLINE resources::EventProxy< Res > | forall_Icount (Args &&... args) |
| | Conversion from template-based policy to value-based policy for forall_Icount. More...
|
| |
| template<typename ExecutionPolicy , typename Res , typename... Args> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_resource< Res > > | forall_Icount (Res r, Args &&... args) |
| |
| template<typename POLICY_LIST , typename SEGMENT , typename... PARAMS> |
| void | dynamic_forall (const int pol, SEGMENT const &seg, PARAMS &&... params) |
| |
| template<typename POLICY_LIST , typename SEGMENT , typename... PARAMS> |
| resources::EventProxy< resources::Resource > | dynamic_forall (RAJA::resources::Resource r, const int pol, SEGMENT const &seg, PARAMS &&... params) |
| |
| template<class Tuple > |
| constexpr RAJA_INLINE auto | make_wrapped_tuple (Tuple &&t) -> decltype(internal::make_wrapped_tuple_impl(std::forward< Tuple >(t), camp::make_idx_seq_t< camp::tuple_size< camp::decay< Tuple >>::value > {})) |
| |
| template<typename PolicyType , typename SegmentTuple , typename ParamTuple , typename Resource , typename... Bodies> |
| RAJA_INLINE resources::EventProxy< Resource > | kernel_param_resource (SegmentTuple &&segments, ParamTuple &¶ms, Resource resource, Bodies &&... bodies) |
| |
| template<typename PolicyType , typename SegmentTuple , typename Resource , typename... Bodies> |
| RAJA_INLINE resources::EventProxy< Resource > | kernel_resource (SegmentTuple &&segments, Resource resource, Bodies &&... bodies) |
| |
| template<typename PolicyType , typename SegmentTuple , typename ParamTuple , typename... Bodies> |
| RAJA_INLINE resources::EventProxy< resources::resource_from_pol_t< PolicyType > > | kernel_param (SegmentTuple &&segments, ParamTuple &¶ms, Bodies &&... bodies) |
| |
| template<typename PolicyType , typename SegmentTuple , typename... Bodies> |
| RAJA_INLINE resources::EventProxy< resources::resource_from_pol_t< PolicyType > > | kernel (SegmentTuple &&segments, Bodies &&... bodies) |
| |
| template<typename LAUNCH_POLICY , typename... ReduceParams> |
| void | launch (LaunchParams const &launch_params, ReduceParams &&... rest_of_launch_args) |
| |
| template<typename POLICY_LIST , typename BODY > |
| void | launch (ExecPlace place, LaunchParams const ¶ms, BODY const &body) |
| |
| template<typename POLICY_LIST , typename... ReduceParams> |
| void | launch (ExecPlace place, const LaunchParams &launch_params, ReduceParams &&... rest_of_launch_args) |
| |
| template<typename T > |
| RAJA::resources::Resource | Get_Host_Resource (T host_res, RAJA::ExecPlace device) |
| |
| template<typename POLICY_LIST , typename... ReduceParams> |
| resources::EventProxy< resources::Resource > | launch (RAJA::resources::Resource res, LaunchParams const &launch_params, ReduceParams &&... rest_of_launch_args) |
| |
| template<typename POLICY_LIST , typename CONTEXT , typename SEGMENT , typename BODY > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE void | loop (CONTEXT const &ctx, SEGMENT const &segment, BODY const &body) |
| |
| template<typename POLICY_LIST , typename CONTEXT , typename SEGMENT , typename BODY > |
| RAJA_HOST_DEVICE RAJA_INLINE void | loop_icount (CONTEXT const &ctx, SEGMENT const &segment, BODY const &body) |
| |
| template<typename POLICY_LIST , typename CONTEXT , typename TILE_T , typename SEGMENT , typename BODY > |
| RAJA_HOST_DEVICE RAJA_INLINE void | tile (CONTEXT const &ctx, TILE_T tile_size, SEGMENT const &segment, BODY const &body) |
| |
| template<typename POLICY_LIST , typename CONTEXT , typename TILE_T , typename SEGMENT , typename BODY > |
| RAJA_HOST_DEVICE RAJA_INLINE void | tile_tcount (CONTEXT const &ctx, TILE_T tile_size, SEGMENT const &segment, BODY const &body) |
| |
| auto | Name (const char *n) |
| |
| template<typename ExecutionPolicy , typename LoopBody > |
| void | region (LoopBody &&loop_body) |
| |
| template<typename ExecutionPolicy , typename OuterBody , typename InnerBody > |
| void | region (OuterBody &&outer_body, InnerBody &&inner_body) |
| |
| template<typename ExecPolicy , typename Res , typename Container , typename Function = operators::plus<RAJA::detail::ContainerVal<Container>>> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< Container > > | inclusive_scan_inplace (ExecPolicy &&p, Res r, Container &&c, Function binop=Function {}) |
| | inclusive in-place scan execution pattern More...
|
| |
| template<typename ExecPolicy , typename Container , typename Function = operators::plus<RAJA::detail::ContainerVal<Container>>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< Container >, concepts::negate< std::is_constructible< camp::resources::Resource, Container > > > | inclusive_scan_inplace (ExecPolicy &&p, Container &&c, Function binop=Function {}) |
| |
| template<typename ExecPolicy , typename Res , typename Container , typename T = RAJA::detail::ContainerVal<Container>, typename Function = operators::plus<T>> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< Container > > | exclusive_scan_inplace (ExecPolicy &&p, Res r, Container &&c, Function binop=Function {}, T value=Function::identity()) |
| | exclusive in-place scan execution pattern More...
|
| |
| template<typename ExecPolicy , typename Container , typename T = RAJA::detail::ContainerVal<Container>, typename Function = operators::plus<T>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< Container >, concepts::negate< std::is_constructible< camp::resources::Resource, Container > > > | exclusive_scan_inplace (ExecPolicy &&p, Container &&c, Function binop=Function {}, T value=Function::identity()) |
| |
| template<typename ExecPolicy , typename Res , typename InContainer , typename OutContainer , typename Function = operators::plus<RAJA::detail::ContainerVal<InContainer>>> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< InContainer >, type_traits::is_range< OutContainer > > | inclusive_scan (ExecPolicy &&p, Res r, InContainer &&in, OutContainer &&out, Function binop=Function {}) |
| | inclusive scan execution pattern More...
|
| |
| template<typename ExecPolicy , typename InContainer , typename OutContainer , typename Function = operators::plus<RAJA::detail::ContainerVal<InContainer>>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< InContainer >, concepts::negate< std::is_constructible< camp::resources::Resource, InContainer > >, type_traits::is_range< OutContainer > > | inclusive_scan (ExecPolicy &&p, InContainer &&in, OutContainer &&out, Function binop=Function {}) |
| |
| template<typename ExecPolicy , typename Res , typename InContainer , typename OutContainer , typename T = RAJA::detail::ContainerVal<InContainer>, typename Function = operators::plus<T>> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< InContainer >, type_traits::is_range< OutContainer > > | exclusive_scan (ExecPolicy &&p, Res r, InContainer &&in, OutContainer &&out, Function binop=Function {}, T value=Function::identity()) |
| | exclusive scan execution pattern More...
|
| |
| template<typename ExecPolicy , typename InContainer , typename OutContainer , typename T = RAJA::detail::ContainerVal<InContainer>, typename Function = operators::plus<T>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< InContainer >, concepts::negate< std::is_constructible< camp::resources::Resource, InContainer > >, type_traits::is_range< OutContainer > > | exclusive_scan (ExecPolicy &&p, InContainer &&in, OutContainer &&out, Function binop=Function {}, T value=Function::identity()) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | exclusive_scan (Args &&... args) |
| | Conversion from template-based policy to value-based policy for exclusive_scan. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | exclusive_scan (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | inclusive_scan (Args &&... args) |
| | Conversion from template-based policy to value-based policy for inclusive_scan. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | inclusive_scan (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | exclusive_scan_inplace (Args &&... args) |
| | Conversion from template-based policy to value-based policy for exclusive_scan_inplace. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | exclusive_scan_inplace (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | inclusive_scan_inplace (Args &&... args) |
| | Conversion from template-based policy to value-based policy for inclusive_scan_inplace. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | inclusive_scan_inplace (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename Res , typename Container , typename Compare = operators::less<RAJA::detail::ContainerVal<Container>>> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< Container > > | sort (ExecPolicy &&p, Res r, Container &&c, Compare comp=Compare {}) |
| | sort execution pattern More...
|
| |
| template<typename ExecPolicy , typename Container , typename Compare = operators::less<RAJA::detail::ContainerVal<Container>>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< Container >, concepts::negate< std::is_constructible< camp::resources::Resource, Container > > > | sort (ExecPolicy &&p, Container &&c, Compare comp=Compare {}) |
| |
| template<typename ExecPolicy , typename Res , typename Container , typename Compare = operators::less<RAJA::detail::ContainerVal<Container>>> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< Container > > | stable_sort (ExecPolicy &&p, Res r, Container &&c, Compare comp=Compare {}) |
| | stable sort execution pattern More...
|
| |
| template<typename ExecPolicy , typename Container , typename Compare = operators::less<RAJA::detail::ContainerVal<Container>>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< Container >, concepts::negate< std::is_constructible< camp::resources::Resource, Container > > > | stable_sort (ExecPolicy &&p, Container &&c, Compare comp=Compare {}) |
| |
| template<typename ExecPolicy , typename Res , typename KeyContainer , typename ValContainer , typename Compare = operators::less<RAJA::detail::ContainerVal<KeyContainer>>> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< KeyContainer >, type_traits::is_range< ValContainer > > | sort_pairs (ExecPolicy &&p, Res r, KeyContainer &&keys, ValContainer &&vals, Compare comp=Compare {}) |
| | sort pairs execution pattern More...
|
| |
| template<typename ExecPolicy , typename KeyContainer , typename ValContainer , typename Compare = operators::less<RAJA::detail::ContainerVal<KeyContainer>>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< KeyContainer >, concepts::negate< std::is_constructible< camp::resources::Resource, KeyContainer > >, type_traits::is_range< ValContainer > > | sort_pairs (ExecPolicy &&p, KeyContainer &&keys, ValContainer &&vals, Compare comp=Compare {}) |
| |
| template<typename ExecPolicy , typename Res , typename KeyContainer , typename ValContainer , typename Compare = operators::less<RAJA::detail::ContainerVal<KeyContainer>>> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res >, std::is_constructible< camp::resources::Resource, Res >, type_traits::is_range< KeyContainer >, type_traits::is_range< ValContainer > > | stable_sort_pairs (ExecPolicy &&p, Res r, KeyContainer &&keys, ValContainer &&vals, Compare comp=Compare {}) |
| | stable sort pairs execution pattern More...
|
| |
| template<typename ExecPolicy , typename KeyContainer , typename ValContainer , typename Compare = operators::less<RAJA::detail::ContainerVal<KeyContainer>>, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_range< KeyContainer >, concepts::negate< std::is_constructible< camp::resources::Resource, KeyContainer > >, type_traits::is_range< ValContainer > > | stable_sort_pairs (ExecPolicy &&p, KeyContainer &&keys, ValContainer &&vals, Compare comp=Compare {}) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | sort (Args &&... args) |
| | Conversion from template-based policy to value-based policy for sort. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | sort (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | stable_sort (Args &&... args) |
| | Conversion from template-based policy to value-based policy for stable_sort. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | stable_sort (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | sort_pairs (Args &&... args) |
| | Conversion from template-based policy to value-based policy for sort_pairs. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | sort_pairs (Res r, Args &&... args) |
| |
| template<typename ExecPolicy , typename... Args, typename Res = typename resources::get_resource<ExecPolicy>::type> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy > > | stable_sort_pairs (Args &&... args) |
| | Conversion from template-based policy to value-based policy for sort_pairs. More...
|
| |
| template<typename ExecPolicy , typename Res , typename... Args> |
| concepts::enable_if_t< resources::EventProxy< Res >, type_traits::is_execution_policy< ExecPolicy >, type_traits::is_resource< Res > > | stable_sort_pairs (Res r, Args &&... args) |
| |
| template<typename Policy > |
| void | synchronize () |
| | Synchronize all current RAJA executions for the specified policy. More...
|
| |
| template<typename Policy > |
| RAJA_INLINE RAJA_HOST_DEVICE int | get_max_threads () |
| | Get maximum number of threads. More...
|
| |
| template<typename Policy > |
| RAJA_INLINE RAJA_HOST_DEVICE int | get_thread_num () |
| | Get current thread number This is based on the OpenMP threading model. Within a parallel team executing a parallel region the threads are numbered 0-N. Returns 0 if called in sequential part of a program or OMP is not active. More...
|
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicLoad (auto_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE void | atomicStore (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicAdd (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicSub (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicMin (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicMax (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicInc (auto_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicInc (auto_atomic, T *acc, T compare) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicDec (auto_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicDec (auto_atomic, T *acc, T compare) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicAnd (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicOr (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicXor (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicExchange (auto_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_INLINE RAJA_HOST_DEVICE T | atomicCAS (auto_atomic, T *acc, T compare, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicLoad (builtin_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE void | atomicStore (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicAdd (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicSub (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicMin (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicMax (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicInc (builtin_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicInc (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicDec (builtin_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicDec (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicAnd (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicOr (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicXor (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicExchange (builtin_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_DEVICE_HIP RAJA_INLINE T | atomicCAS (builtin_atomic, T *acc, T compare, T value) |
| |
| template<typename BODY , typename ReduceParams > |
| __global__ void | launch_new_reduce_global_fcn (const RAJA_CUDA_GRID_CONSTANT BODY body_in, ReduceParams reduce_params) |
| |
| template<typename BODY , int num_threads, size_t BLOCKS_PER_SM, typename ReduceParams > |
| | __launch_bounds__ (num_threads, BLOCKS_PER_SM) __global__ void launch_new_reduce_global_fcn_fixed(const RAJA_CUDA_GRID_CONSTANT BODY body_in |
| |
| template<typename BODY , typename ReduceParams > |
| __global__ void | launch_new_reduce_global_fcn (const BODY body_in, ReduceParams reduce_params) |
| |
| template<typename BODY , int num_threads, typename ReduceParams > |
| | __launch_bounds__ (num_threads, 1) __global__ void launch_new_reduce_global_fcn_fixed(const BODY body_in |
| |
| template<typename... Policies, typename Selector > |
| auto | make_multi_policy (Selector s) -> MultiPolicy< Selector, Policies... > |
| |
| template<typename... Policies, typename Selector > |
| auto | make_multi_policy (std::tuple< Policies... > policies, Selector s) -> MultiPolicy< Selector, Policies... > |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicLoad (seq_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE void | atomicStore (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicAdd (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicSub (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicMin (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicMax (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicInc (seq_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicInc (seq_atomic, T *acc, T val) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicDec (seq_atomic, T *acc) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicDec (seq_atomic, T *acc, T val) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicAnd (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicOr (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicXor (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicExchange (seq_atomic, T *acc, T value) |
| |
| template<typename T > |
| RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE T | atomicCAS (seq_atomic, T *acc, T compare, T value) |
| |
| template<> |
| RAJA_HOST_DEVICE RAJA_INLINE int | get_max_threads (seq_thread) |
| |
| template<> |
| RAJA_HOST_DEVICE RAJA_INLINE int | get_thread_num (seq_thread) |
| |
| template<typename AtomicPolicy > |
| RAJA_HOST_DEVICE RAJA_INLINE int | get_max_threads (AtomicPolicy) |
| |
| template<typename AtomicPolicy > |
| RAJA_HOST_DEVICE RAJA_INLINE int | get_thread_num (AtomicPolicy) |
| |
| RAJA_INLINE void * | align (size_t alignment, size_t size, void *&ptr, size_t &space) |
| |
| template<typename Lambda , typename Layout > |
| RAJA_HOST_DEVICE RAJA_INLINE auto | make_CombiningAdapter_from_layout (Lambda &&lambda, Layout &&layout) |
| | Creates a CombiningAdapter class from a lambda and segments. More...
|
| |
| template<typename Lambda , typename... IdxTs> |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE auto | make_CombiningAdapter (Lambda &&lambda, ::RAJA::TypedRangeSegment< IdxTs > const &... segs) |
| |
| template<typename Perm , typename Lambda , typename... IdxTs> |
| RAJA_SUPPRESS_HD_WARN RAJA_INLINE auto | make_PermutedCombiningAdapter (Lambda &&lambda, ::RAJA::TypedRangeSegment< IdxTs > const &... segs) |
| |
| template<typename Container , typename UnaryFunc > |
| constexpr RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if_t< UnaryFunc, type_traits::is_range< Container > > | for_each (Container &&c, UnaryFunc func) |
| | Apply func to all the elements in the given range in order using a sequential for loop in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/for_each. More...
|
| |
| template<typename UnaryFunc , typename... Ts> |
| constexpr RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE UnaryFunc | for_each_type (camp::list< Ts... > const &c, UnaryFunc func) |
| | Apply func to each type in the given list in order using a compile-time expansion in O(N) operations and O(1) extra memory. More...
|
| |
| template<typename Tuple , typename UnaryFunc > |
| constexpr RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE RAJA_INLINE UnaryFunc | for_each_tuple (Tuple &&t, UnaryFunc func) |
| | Apply func to each object in the given tuple or tuple like type in order using a compile-time expansion in O(N) operations and O(1) extra memory. More...
|
| |
| template<typename... IndexTypes> |
| RAJA_INLINE RAJA_HOST_DEVICE auto | make_index_tuple (IndexTypes... it) -> camp::tuple< IndexTypes... > |
| |
| template<typename IdxLin = Index_type, typename... Types, typename... IndexTypes> |
| RAJA_INLINE RAJA_HOST_DEVICE auto | make_index_layout (camp::tuple< IndexTypes... > index_tuple_in, Types... ns) -> IndexLayout< sizeof...(Types), IdxLin, IndexTypes... > |
| |
| template<ptrdiff_t s1_dim, size_t n_dims, typename IdxLin > |
| RAJA_INLINE constexpr RAJA_HOST_DEVICE Layout< n_dims, IdxLin, s1_dim > | make_stride_one (Layout< n_dims, IdxLin > const &l) |
| |
| template<ptrdiff_t s1_dim, typename IdxLin , typename IdxTuple > |
| RAJA_INLINE constexpr RAJA_HOST_DEVICE TypedLayout< IdxLin, IdxTuple, s1_dim > | make_stride_one (TypedLayout< IdxLin, IdxTuple > const &l) |
| |
| template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE T | log2 (T n) noexcept |
| | evaluate log base 2 of n More...
|
| |
| template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE T | next_pow2 (T n) noexcept |
| | "round up" to the next greatest power of 2 More...
|
| |
| template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE T | prev_pow2 (T n) noexcept |
| | "round down" to the largest power of 2 that is less than or equal to n More...
|
| |
| template<typename L , typename R , std::enable_if_t< std::is_integral< L >::value &&std::is_integral< R >::value > * = nullptr> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | power_of_2_mod (L lhs, R rhs) noexcept |
| | compute lhs mod rhs where lhs is non-negative and rhs is a power of 2 More...
|
| |
| template<size_t n_dims, typename IdxLin = Index_type> |
| RAJA_INLINE constexpr RAJA_HOST_DEVICE auto | make_offset_layout (const std::array< IdxLin, n_dims > &begin, const std::array< IdxLin, n_dims > &end) -> OffsetLayout< n_dims, IdxLin > |
| |
| template<size_t Rank, typename IdxLin = Index_type> |
| RAJA_INLINE constexpr RAJA_HOST_DEVICE auto | make_permuted_offset_layout (const std::array< IdxLin, Rank > &begin, const std::array< IdxLin, Rank > &end, const std::array< IdxLin, Rank > &permutation) -> decltype(make_offset_layout< Rank, IdxLin >(begin, end)) |
| |
| template<size_t Rank, typename IdxLin = Index_type> |
| constexpr RAJA_INLINE RAJA_HOST_DEVICE auto | make_permuted_layout (std::array< IdxLin, Rank > sizes, std::array< camp::idx_t, Rank > permutation) -> Layout< Rank, IdxLin > |
| | Creates a permuted Layout object. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | left_fold_reduce (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Accumulate given range to a single value using a left fold algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | binary_tree_reduce (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Reduce given range to a single value using a binary tree algorithm in O(N) operations and O(lg(N)) extra memory see https://en.cppreference.com/w/cpp/algorithm/reduce. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container >, std::is_floating_point< T > > | kahan_sum (Container &&c, T init=T()) |
| | Accumulate given range to a single value using a kahan summation algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container >, std::is_floating_point< T > > | kahan_sum_volatile (Container &&c, T init=T()) |
| | Accumulate given range to a single value using a kahan summation algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | high_accuracy_reduce (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Reduce given range to a single value using an algorithm with high accuracy when floating point round off is a concern see https://en.cppreference.com/w/cpp/algorithm/reduce. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | accumulate (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Accumulate given range to a single value using a left fold algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | insertion_sort (Container &&c, Compare comp=Compare {}) |
| | stable insertion sort given range inplace using comparison function and using O(N^2) comparisons and O(1) memory More...
|
| |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | shell_sort (Container &&c, Compare comp=Compare {}) |
| | unstable shell sort given range inplace using comparison function and using O(N^?) comparisons and O(1) memory More...
|
| |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | heap_sort (Container &&c, Compare comp=Compare {}) |
| | unstable heap sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(1) memory More...
|
| |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | intro_sort (Container &&c, Compare comp=Compare {}) |
| | unstable intro sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(lg(N)) memory More...
|
| |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> |
| RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | merge_sort (Container &&c, Compare comp=Compare {}) |
| | stable merge sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(N) memory More...
|
| |
| template<typename IterType , typename IndexType > |
| constexpr RAJA_HOST_DEVICE RAJA_INLINE Span< IterType, IndexType > | make_span (IterType begin, IndexType size) |
| | Creates a span from a random access iterator and length. More...
|
| |
| template<typename Iter > |
| constexpr RAJA_HOST_DEVICE RAJA_INLINE auto | make_span (Iter &iterable) |
| |
| template<typename IndexType , typename ValueType > |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE View< ValueType, Layout< 1, IndexType, 0 > > | make_view (ValueType *ptr) |
| |
| template<size_t n_dims, typename IndexType , typename ValueType , typename... IndexTypes> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE View< ValueType, IndexLayout< n_dims, IndexType, IndexTypes... > > | make_index_view (ValueType *ptr, IndexLayout< n_dims, IndexType, IndexTypes... > index_layout) |
| |
| template<typename Lay , typename Tup , camp::idx_t... Idxs> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | selecttuple (Lay lyout, Tup &&tup, camp::idx_seq< Idxs... >) -> decltype(lyout(camp::get< Idxs >(std::forward< Tup >(tup))...)) |
| |
| template<typename Lay , RAJA::Index_type Nth = 0, typename Tup > |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | removenth (Lay lyout, Tup &&tup) -> decltype(selecttuple< Lay >(lyout, std::forward< Tup >(tup), cat_seq_t< camp::make_idx_seq_t< Nth >, offset_seq_t< Nth+1, camp::make_idx_seq_t< camp::tuple_size< Tup >::value - Nth - 1 >> > {})) |
| |
| template<typename AtomicPolicy , typename ViewType > |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE AtomicViewWrapper< ViewType, AtomicPolicy > | make_atomic_view (ViewType const &view) |
| |
| template<typename meta_layout , typename IndexType = RAJA::Index_type, typename T , typename... Extents> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | make_permuted_view (T *ptr, Extents &&... extents) |
| |
| template<typename... Args> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | zip (Args &&... args) -> ZipIterator< camp::decay< Args >... > |
| | Zip multiple iterators together to iterate them simultaneously with a single ZipIterator object. More...
|
| |
| template<typename... Args> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | zip_span (Args &&... args) -> Span< ZipIterator< detail::ContainerIter< camp::decay< Args >>... >, typename ZipIterator< detail::ContainerIter< camp::decay< Args >>... >::difference_type > |
| | Zip multiple containers together to iterate them simultaneously with ZipIterator objects. More...
|
| |
| template<typename T , typename Compare > |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE auto | compare_first (Compare comp) -> CompareFirst< T, Compare > |
| | Make a comparator to compare first member of tuple like objects of type T. More...
|
| |
| template<camp::idx_t I, bool is_val, typename... Ts> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > & | get (zip_tuple< is_val, Ts... > &z) noexcept |
| |
| template<camp::idx_t I, bool is_val, typename... Ts> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > const & | get (zip_tuple< is_val, Ts... > const &z) noexcept |
| |
| template<camp::idx_t I, bool is_val, typename... Ts> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE std::remove_reference_t< RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > > && | get (zip_tuple< is_val, Ts... > &&z) noexcept |
| |
| template<camp::idx_t I, bool is_val, typename... Ts> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE std::remove_reference_t< RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > > const && | get (zip_tuple< is_val, Ts... > const &&z) noexcept |
| |
|
For each method, the given container must be templated on a data type, have default and copy ctors, push_back method, and value_type. Is is assumed that the container data type and segment or index set data type are compatible in the sense that the index set type can be converted to the container data type.
|
| template<typename CONTAINER_T , typename... SEG_TYPES> |
| RAJA_INLINE void | getIndices (CONTAINER_T &con, const TypedIndexSet< SEG_TYPES... > &iset) |
| | Copy all indices in given index set to given container. More...
|
| |
| template<typename CONTAINER_T , typename SEGMENT_T > |
| RAJA_INLINE void | getIndices (CONTAINER_T &con, const SEGMENT_T &seg) |
| | Copy all indices in given segment to given container. More...
|
| |
| template<typename CONTAINER_T , typename... SEG_TYPES, typename CONDITIONAL > |
| RAJA_INLINE void | getIndicesConditional (CONTAINER_T &con, const TypedIndexSet< SEG_TYPES... > &iset, CONDITIONAL conditional) |
| | Copy all indices in given index set that satisfy given conditional to given container. More...
|
| |
| template<typename CONTAINER_T , typename SEGMENT_T , typename CONDITIONAL > |
| RAJA_INLINE void | getIndicesConditional (CONTAINER_T &con, const SEGMENT_T &seg, CONDITIONAL conditional) |
| | Copy all indices in given segment that satisfy given conditional to given container. More...
|
| |