|
template<class T , std::size_t NT, class U , std::size_t NU> |
constexpr bool | operator== (AlignedAllocator< T, NT > const &, AlignedAllocator< U, NU > const &) noexcept |
|
template<class T , std::size_t NT, class U , std::size_t NU> |
constexpr bool | operator!= (AlignedAllocator< T, NT > const &, AlignedAllocator< U, NU > const &) noexcept |
|
template<class... DDims, class Allocator > |
| Chunk (DiscreteDomain< DDims... > const &, Allocator) -> Chunk< typename Allocator::value_type, DiscreteDomain< DDims... >, Allocator > |
|
template<class... QueryDDims, class ChunkType > |
auto | get_domain (ChunkType const &chunk) noexcept |
| Access the domain (or subdomain) of a view. More...
|
|
template<class KokkosView , class... DDims, class = std::enable_if_t<Kokkos::is_view<KokkosView>::value>> |
| ChunkSpan (KokkosView const &view, DiscreteDomain< DDims... > domain) -> ChunkSpan< ddc_detail::kokkos_to_mdspan_element_t< typename KokkosView::data_type >, DiscreteDomain< DDims... >, ddc_detail::kokkos_to_mdspan_layout_t< typename KokkosView::array_layout >, typename KokkosView::memory_space > |
|
template<class ChunkDst , class ChunkSrc > |
auto | deepcopy (ChunkDst &&dst, ChunkSrc &&src) |
| Copy the content of a borrowed chunk into another. More...
|
|
template<class... QueryDDims, class... DDims> |
constexpr DiscreteDomain< QueryDDims... > | select (DiscreteDomain< DDims... > const &domain) |
|
template<class... QueryDDims, class... DDims> |
constexpr DiscreteVector< QueryDDims... > | extents (DiscreteDomain< DDims... > const &domain) noexcept |
|
template<class... QueryDDims, class... DDims> |
constexpr DiscreteElement< QueryDDims... > | front (DiscreteDomain< DDims... > const &domain) noexcept |
|
template<class... QueryDDims, class... DDims> |
constexpr DiscreteElement< QueryDDims... > | back (DiscreteDomain< DDims... > const &domain) noexcept |
|
template<class... QueryDDims, class... DDims> |
ddc::Coordinate< QueryDDims... > | coordinate (DiscreteDomain< DDims... > const &domain, DiscreteElement< QueryDDims... > const &icoord) noexcept |
|
template<class... QueryDDims, class... DDims> |
ddc::Coordinate< QueryDDims... > | rmin (DiscreteDomain< DDims... > const &domain) noexcept |
|
template<class... QueryDDims, class... DDims> |
ddc::Coordinate< QueryDDims... > | rmax (DiscreteDomain< DDims... > const &domain) noexcept |
|
template<class QueryDDimSeq , class... DDims> |
constexpr auto | select_by_type_seq (DiscreteDomain< DDims... > const &domain) |
|
template<class Tag > |
constexpr DiscreteElementType const & | uid (DiscreteElement< Tag > const &tuple) noexcept |
|
template<class Tag > |
constexpr DiscreteElementType & | uid (DiscreteElement< Tag > &tuple) noexcept |
|
template<class QueryTag , class... Tags> |
constexpr DiscreteElementType const & | uid (DiscreteElement< Tags... > const &tuple) noexcept |
|
template<class QueryTag , class... Tags> |
constexpr DiscreteElementType & | uid (DiscreteElement< Tags... > &tuple) noexcept |
|
template<class QueryTag , class... Tags> |
constexpr DiscreteElementType const & | uid_or (DiscreteElement< Tags... > const &tuple, DiscreteElementType const &default_value) noexcept |
|
template<class... QueryTags, class... Tags> |
constexpr DiscreteElement< QueryTags... > | select (DiscreteElement< Tags... > const &arr) noexcept |
|
template<class... QueryTags, class... Tags> |
constexpr DiscreteElement< QueryTags... > | select (DiscreteElement< Tags... > &&arr) noexcept |
|
template<class QueryTag , class HeadTag , class... TailTags> |
constexpr DiscreteElement< QueryTag > const & | take (DiscreteElement< HeadTag > const &head, DiscreteElement< TailTags > const &... tags) |
|
std::ostream & | operator<< (std::ostream &out, DiscreteElement<> const &) |
|
template<class Head , class... Tags> |
std::ostream & | operator<< (std::ostream &out, DiscreteElement< Head, Tags... > const &arr) |
|
template<class... Tags, class... OTags> |
constexpr bool | operator== (DiscreteElement< Tags... > const &lhs, DiscreteElement< OTags... > const &rhs) noexcept |
|
template<class... Tags, class... OTags> |
constexpr bool | operator!= (DiscreteElement< Tags... > const &lhs, DiscreteElement< OTags... > const &rhs) noexcept |
|
template<class Tag > |
constexpr bool | operator< (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
|
template<class Tag > |
constexpr bool | operator<= (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
|
template<class Tag > |
constexpr bool | operator> (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
|
template<class Tag > |
constexpr bool | operator>= (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
|
template<class... Tags, class... OTags> |
constexpr DiscreteElement< Tags... > | operator+ (DiscreteElement< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
| right external binary operators: +, - More...
|
|
template<class Tag , class IntegralType , class = std::enable_if_t<std::is_integral_v<IntegralType>>, class = std::enable_if_t<!is_discrete_vector_v<IntegralType>>> |
constexpr DiscreteElement< Tag > | operator+ (DiscreteElement< Tag > const &lhs, IntegralType const &rhs) |
|
template<class... Tags, class... OTags> |
constexpr DiscreteElement< Tags... > | operator- (DiscreteElement< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
|
template<class Tag , class IntegralType , class = std::enable_if_t<std::is_integral_v<IntegralType>>, class = std::enable_if_t<!is_discrete_vector_v<IntegralType>>> |
constexpr DiscreteElement< Tag > | operator- (DiscreteElement< Tag > const &lhs, IntegralType const &rhs) |
|
template<class... Tags, class... OTags> |
constexpr DiscreteVector< Tags... > | operator- (DiscreteElement< Tags... > const &lhs, DiscreteElement< OTags... > const &rhs) |
| binary operator: - More...
|
|
template<class DDim , class... Args> |
void | init_discrete_space (Args &&... args) |
| Initialize (emplace) a global singleton discrete space. More...
|
|
template<class DDimImpl , class Arg > |
Arg | init_discrete_space (std::tuple< DDimImpl, Arg > &&a) |
| Move construct a global singleton discrete space and pass through the other argument. More...
|
|
template<class DDimImpl , class... Args> |
std::enable_if_t< 2<=sizeof...(Args), std::tuple< Args... > > init_discrete_space(std::tuple< DDimImpl, Args... > &&a){ using DDim=typename DDimImpl::discrete_dimension_type;init_discrete_space< DDim >std::move(std::get< 0 >a)));return ddc_detail::extract_after(std::move(a), std::index_sequence_for< Args... >));}template< class DDim, class MemorySpace=DDC_CURRENT_KOKKOS_SPACE >DDC_INLINE_FUNCTION ddc_detail::ddim_impl_t< DDim, MemorySpace > const &discrete_space(){ if constexpr(std::is_same_v< MemorySpace, Kokkos::HostSpace >) { return ddc_detail::g_discrete_space_dual< DDim > -> | get_host () |
| Move construct a global singleton discrete space and pass through remaining arguments. More...
|
|
template<class QueryTag , class... Tags> |
constexpr DiscreteVectorElement const & | get (DiscreteVector< Tags... > const &tuple) noexcept |
|
template<class QueryTag , class... Tags> |
constexpr DiscreteVectorElement & | get (DiscreteVector< Tags... > &tuple) noexcept |
|
template<class QueryTag , class... Tags> |
constexpr DiscreteVectorElement const & | get_or (DiscreteVector< Tags... > const &tuple, DiscreteVectorElement const &default_value) noexcept |
|
template<class... Tags> |
constexpr DiscreteVector< Tags... > | operator+ (DiscreteVector< Tags... > const &x) |
| Unary operators: +, -. More...
|
|
template<class... Tags> |
constexpr DiscreteVector< Tags... > | operator- (DiscreteVector< Tags... > const &x) |
|
template<class... Tags, class... OTags> |
constexpr DiscreteVector< Tags... > | operator+ (DiscreteVector< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
| Internal binary operators: +, -. More...
|
|
template<class Tag , class IntegralType , class = std::enable_if_t<std::is_integral_v<IntegralType>>> |
constexpr DiscreteVector< Tag > | operator+ (DiscreteVector< Tag > const &lhs, IntegralType const &rhs) |
|
template<class IntegralType , class Tag , class = std::enable_if_t<std::is_integral_v<IntegralType>>> |
constexpr DiscreteVector< Tag > | operator+ (IntegralType const &lhs, DiscreteVector< Tag > const &rhs) |
|
template<class... Tags, class... OTags> |
constexpr DiscreteVector< Tags... > | operator- (DiscreteVector< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
|
template<class Tag , class IntegralType , class = std::enable_if_t<std::is_integral_v<IntegralType>>> |
constexpr DiscreteVector< Tag > | operator- (DiscreteVector< Tag > const &lhs, IntegralType const &rhs) |
|
template<class IntegralType , class Tag , class = std::enable_if_t<std::is_integral_v<IntegralType>>> |
constexpr DiscreteVector< Tag > | operator- (IntegralType const &lhs, DiscreteVector< Tag > const &rhs) |
|
template<class IntegralType , class... Tags, class = std::enable_if_t<std::is_integral_v<IntegralType>>> |
constexpr auto | operator* (IntegralType const &lhs, DiscreteVector< Tags... > const &rhs) |
| external left binary operator: * More...
|
|
template<class... QueryTags, class... Tags> |
constexpr DiscreteVector< QueryTags... > | select (DiscreteVector< Tags... > const &arr) noexcept |
|
template<class... QueryTags, class... Tags> |
constexpr DiscreteVector< QueryTags... > | select (DiscreteVector< Tags... > &&arr) noexcept |
|
template<class QueryTag , class HeadTag , class... TailTags> |
constexpr DiscreteVector< QueryTag > const & | take (DiscreteVector< HeadTag > const &head, DiscreteVector< TailTags > const &... tags) |
|
template<class Tag > |
constexpr bool | operator< (DiscreteVector< Tag > const &lhs, DiscreteVector< Tag > const &rhs) |
|
template<class Tag , class IntegralType > |
constexpr bool | operator< (DiscreteVector< Tag > const &lhs, IntegralType const &rhs) |
|
std::ostream & | operator<< (std::ostream &out, DiscreteVector<> const &) |
|
template<class Head , class... Tags> |
std::ostream & | operator<< (std::ostream &out, DiscreteVector< Head, Tags... > const &arr) |
|
template<class ChunkDst , class T > |
auto | fill (ChunkDst &&dst, T const &value) |
| Fill a borrowed chunk with a given value. More...
|
|
template<class... DDims, class Functor > |
void | for_each (serial_host_policy, DiscreteDomain< DDims... > const &domain, Functor &&f) noexcept |
| iterates over a nD domain using the serial execution policy More...
|
|
template<class... DDims, class Functor > |
void | for_each_n (serial_host_policy, DiscreteVector< DDims... > const &extent, Functor &&f) noexcept |
| iterates over a nD extent using the serial execution policy More...
|
|
template<class... DDims, class Functor > |
void | for_each (parallel_host_policy, DiscreteDomain< DDims... > const &domain, Functor &&f) noexcept |
| iterates over a nD domain using the serial execution policy More...
|
|
template<class... DDims, class Functor > |
void | for_each (parallel_device_policy, DiscreteDomain< DDims... > const &domain, Functor &&f) noexcept |
| iterates over a nD domain using the parallel_device_policy execution policy More...
|
|
template<class... DDims, class Functor > |
void | for_each (DiscreteDomain< DDims... > const &domain, Functor &&f) noexcept |
| iterates over a nD domain using the default execution policy More...
|
|
template<class... DDims, class Functor > |
void | for_each_n (DiscreteVector< DDims... > const &extent, Functor &&f) noexcept |
| iterates over a nD extent using the default execution policy More...
|
|
template<class ExecutionPolicy , class ElementType , class... DDims, class LayoutPolicy , class Functor > |
void | for_each_elem (ExecutionPolicy &&policy, ChunkSpan< ElementType, DiscreteDomain< DDims... >, LayoutPolicy > chunk_span, Functor &&f) noexcept |
|
template<class ElementType , class... DDims, class LayoutPolicy , class Functor > |
void | for_each_elem (ChunkSpan< ElementType, DiscreteDomain< DDims... >, LayoutPolicy > chunk_span, Functor &&f) noexcept |
|
template<class T , class MST , class U , class MSU > |
constexpr bool | operator== (KokkosAllocator< T, MST > const &, KokkosAllocator< U, MSU > const &) noexcept |
|
template<class T , class MST , class U , class MSU > |
constexpr bool | operator!= (KokkosAllocator< T, MST > const &, KokkosAllocator< U, MSU > const &) noexcept |
|
template<class DDimImpl , std::enable_if_t< is_non_uniform_sampling_v< typename DDimImpl::discrete_dimension_type >, int > = 0> |
std::ostream & | operator<< (std::ostream &out, DDimImpl const &mesh) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | coordinate (DiscreteElement< NonUniformPointSampling< CDim >> const &c) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | distance_at_left (DiscreteElement< NonUniformPointSampling< CDim >> i) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | distance_at_right (DiscreteElement< NonUniformPointSampling< CDim >> i) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | rmin (DiscreteDomain< NonUniformPointSampling< CDim >> const &d) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | rmax (DiscreteDomain< NonUniformPointSampling< CDim >> const &d) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | rlength (DiscreteDomain< NonUniformPointSampling< CDim >> const &d) |
|
template<PDI_inout_t access, class DataType > |
void | expose_to_pdi (std::string const &name, DataType &&data) |
|
template<class DataType > |
void | expose_to_pdi (std::string const &name, DataType &&data) |
|
template<class... DDims, class T , class BinaryReductionOp , class UnaryTransformOp > |
T | transform_reduce ([[maybe_unused]] serial_host_policy policy, DiscreteDomain< DDims... > const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
| A reduction over a nD domain using the Serial execution policy. More...
|
|
template<class... DDims, class T , class BinaryReductionOp , class UnaryTransformOp > |
T | transform_reduce ([[maybe_unused]] parallel_host_policy policy, DiscreteDomain< DDims... > const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
| A reduction over a nD domain using the Kokkos execution policy. More...
|
|
template<class... DDims, class T , class BinaryReductionOp , class UnaryTransformOp > |
T | transform_reduce ([[maybe_unused]] parallel_device_policy policy, DiscreteDomain< DDims... > const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
| A reduction over a nD domain using the Kokkos execution policy. More...
|
|
template<class... DDims, class T , class BinaryReductionOp , class UnaryTransformOp > |
T | transform_reduce (DiscreteDomain< DDims... > const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
| A reduction over a nD domain using the default execution policy. More...
|
|
template<class DDim > |
DDC_INLINE_FUNCTION std::enable_if_t< is_uniform_sampling_v< DDim >, typename DDim::continuous_element_type > | origin () noexcept |
| Lower bound index of the mesh. More...
|
|
template<class DDim > |
DDC_INLINE_FUNCTION std::enable_if_t< is_uniform_sampling_v< DDim >, typename DDim::discrete_element_type > | front () noexcept |
| Lower bound index of the mesh. More...
|
|
template<class DDim > |
DDC_INLINE_FUNCTION std::enable_if_t< is_uniform_sampling_v< DDim >, double > | step () noexcept |
| Spacing step of the mesh. More...
|
|
template<class CDim > |
constexpr DDC_INLINE_FUNCTION Coordinate< CDim > | coordinate (DiscreteElement< UniformPointSampling< CDim >> const &c) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | distance_at_left (DiscreteElement< UniformPointSampling< CDim >>) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | distance_at_right (DiscreteElement< UniformPointSampling< CDim >>) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | rmin (DiscreteDomain< UniformPointSampling< CDim >> const &d) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | rmax (DiscreteDomain< UniformPointSampling< CDim >> const &d) |
|
template<class CDim > |
DDC_INLINE_FUNCTION Coordinate< CDim > | rlength (DiscreteDomain< UniformPointSampling< CDim >> const &d) |
|