DDC 0.1.0
Loading...
Searching...
No Matches
ddc::DiscreteVector< Tags > Class Template Reference

A DiscreteVector is a vector in the discrete dimension. More...

#include <discrete_vector.hpp>

Inheritance diagram for ddc::DiscreteVector< Tags >:
Inheritance graph
Collaboration diagram for ddc::DiscreteVector< Tags >:
Collaboration graph

Public Member Functions

KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVector ()=default
 
KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVector (DiscreteVector const &)=default
 
KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVector (DiscreteVector &&)=default
 
template<class... DVects, class = std::enable_if_t<(is_discrete_vector_v<DVects> && ...)>>
KOKKOS_FUNCTION constexpr DiscreteVector (DVects const &... delems) noexcept
 
template<class... Params, class = std::enable_if_t<(!is_discrete_vector_v<Params> && ...)>, class = std::enable_if_t<(std::is_convertible_v<Params, DiscreteVectorElement> && ...)>, class = std::enable_if_t<sizeof...(Params) == sizeof...(Tags)>>
KOKKOS_FUNCTION constexpr DiscreteVector (Params const &... params) noexcept
 
KOKKOS_DEFAULTED_FUNCTION ~DiscreteVector ()=default
 
KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVectoroperator= (DiscreteVector const &other)=default
 
KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVectoroperator= (DiscreteVector &&other)=default
 
template<class... OTags>
KOKKOS_FUNCTION constexpr bool operator== (DiscreteVector< OTags... > const &rhs) const noexcept
 
template<class... OTags>
KOKKOS_FUNCTION constexpr bool operator!= (DiscreteVector< OTags... > const &rhs) const noexcept
 
template<class QueryTag >
KOKKOS_FUNCTION constexpr DiscreteVectorElementget () noexcept
 
template<class QueryTag >
KOKKOS_FUNCTION constexpr DiscreteVectorElement constget () const noexcept
 
template<class QueryTag >
KOKKOS_FUNCTION constexpr DiscreteVectorElement constget_or (DiscreteVectorElement const &default_value) const &
 
template<std::size_t N = sizeof...(Tags)>
KOKKOS_FUNCTION constexpr std::enable_if_t< N==1, DiscreteVectorElement const & > value () const noexcept
 
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator++ ()
 
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVector operator++ (int)
 
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator-- ()
 
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVector operator-- (int)
 
template<class... OTags>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator+= (DiscreteVector< OTags... > const &rhs)
 
template<class IntegralType , std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>, class = std::enable_if_t<std::is_integral_v<IntegralType>>>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator+= (IntegralType const &rhs)
 
template<class... OTags>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator-= (DiscreteVector< OTags... > const &rhs)
 
template<class IntegralType , std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>, class = std::enable_if_t<std::is_integral_v<IntegralType>>>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator-= (IntegralType const &rhs)
 
template<class... OTags>
KOKKOS_FUNCTION constexpr DiscreteVectoroperator*= (DiscreteVector< OTags... > const &rhs)
 

Static Public Member Functions

static KOKKOS_FUNCTION constexpr std::size_t size () noexcept
 

Detailed Description

template<class... Tags>
class ddc::DiscreteVector< Tags >

A DiscreteVector is a vector in the discrete dimension.

Each is tagged by its associated dimensions.

Definition at line 256 of file discrete_vector.hpp.

Constructor & Destructor Documentation

◆ DiscreteVector() [1/5]

template<class... Tags>
KOKKOS_DEFAULTED_FUNCTION constexpr ddc::DiscreteVector< Tags >::DiscreteVector ( )
constexprdefault

◆ DiscreteVector() [2/5]

template<class... Tags>
KOKKOS_DEFAULTED_FUNCTION constexpr ddc::DiscreteVector< Tags >::DiscreteVector ( DiscreteVector< Tags > const )
constexprdefault

◆ DiscreteVector() [3/5]

template<class... Tags>
KOKKOS_DEFAULTED_FUNCTION constexpr ddc::DiscreteVector< Tags >::DiscreteVector ( DiscreteVector< Tags > &&  )
constexprdefault

◆ DiscreteVector() [4/5]

template<class... Tags>
template<class... DVects, class = std::enable_if_t<(is_discrete_vector_v<DVects> && ...)>>
KOKKOS_FUNCTION constexpr ddc::DiscreteVector< Tags >::DiscreteVector ( DVects const &...  delems)
inlineexplicitconstexprnoexcept

Definition at line 284 of file discrete_vector.hpp.

◆ DiscreteVector() [5/5]

template<class... Tags>
template<class... Params, class = std::enable_if_t<(!is_discrete_vector_v<Params> && ...)>, class = std::enable_if_t<(std::is_convertible_v<Params, DiscreteVectorElement> && ...)>, class = std::enable_if_t<sizeof...(Params) == sizeof...(Tags)>>
KOKKOS_FUNCTION constexpr ddc::DiscreteVector< Tags >::DiscreteVector ( Params const &...  params)
inlineexplicitconstexprnoexcept

Definition at line 294 of file discrete_vector.hpp.

◆ ~DiscreteVector()

template<class... Tags>
KOKKOS_DEFAULTED_FUNCTION ddc::DiscreteVector< Tags >::~DiscreteVector ( )
default

Member Function Documentation

◆ size()

template<class... Tags>
static KOKKOS_FUNCTION constexpr std::size_t ddc::DiscreteVector< Tags >::size ( )
inlinestaticconstexprnoexcept

Definition at line 271 of file discrete_vector.hpp.

◆ operator=() [1/2]

template<class... Tags>
KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator= ( DiscreteVector< Tags > const other)
constexprdefault

◆ operator=() [2/2]

template<class... Tags>
KOKKOS_DEFAULTED_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator= ( DiscreteVector< Tags > &&  other)
constexprdefault

◆ operator==()

template<class... Tags>
template<class... OTags>
KOKKOS_FUNCTION constexpr bool ddc::DiscreteVector< Tags >::operator== ( DiscreteVector< OTags... > const rhs) const
inlineconstexprnoexcept

Definition at line 307 of file discrete_vector.hpp.

◆ operator!=()

template<class... Tags>
template<class... OTags>
KOKKOS_FUNCTION constexpr bool ddc::DiscreteVector< Tags >::operator!= ( DiscreteVector< OTags... > const rhs) const
inlineconstexprnoexcept

Definition at line 315 of file discrete_vector.hpp.

◆ get() [1/2]

template<class... Tags>
template<class QueryTag >
KOKKOS_FUNCTION constexpr DiscreteVectorElement & ddc::DiscreteVector< Tags >::get ( )
inlineconstexprnoexcept

Definition at line 322 of file discrete_vector.hpp.

◆ get() [2/2]

template<class... Tags>
template<class QueryTag >
KOKKOS_FUNCTION constexpr DiscreteVectorElement const & ddc::DiscreteVector< Tags >::get ( ) const
inlineconstexprnoexcept

Definition at line 329 of file discrete_vector.hpp.

◆ get_or()

template<class... Tags>
template<class QueryTag >
KOKKOS_FUNCTION constexpr DiscreteVectorElement const & ddc::DiscreteVector< Tags >::get_or ( DiscreteVectorElement const default_value) const &
inlineconstexpr

Definition at line 336 of file discrete_vector.hpp.

◆ value()

template<class... Tags>
template<std::size_t N = sizeof...(Tags)>
KOKKOS_FUNCTION constexpr std::enable_if_t< N==1, DiscreteVectorElement const & > ddc::DiscreteVector< Tags >::value ( ) const
inlineconstexprnoexcept

Definition at line 349 of file discrete_vector.hpp.

◆ operator++() [1/2]

template<class... Tags>
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator++ ( )
inlineconstexpr

Definition at line 356 of file discrete_vector.hpp.

◆ operator++() [2/2]

template<class... Tags>
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVector ddc::DiscreteVector< Tags >::operator++ ( int  )
inlineconstexpr

Definition at line 363 of file discrete_vector.hpp.

◆ operator--() [1/2]

template<class... Tags>
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator-- ( )
inlineconstexpr

Definition at line 371 of file discrete_vector.hpp.

◆ operator--() [2/2]

template<class... Tags>
template<std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>>
KOKKOS_FUNCTION constexpr DiscreteVector ddc::DiscreteVector< Tags >::operator-- ( int  )
inlineconstexpr

Definition at line 378 of file discrete_vector.hpp.

◆ operator+=() [1/2]

template<class... Tags>
template<class... OTags>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator+= ( DiscreteVector< OTags... > const rhs)
inlineconstexpr

Definition at line 386 of file discrete_vector.hpp.

◆ operator+=() [2/2]

template<class... Tags>
template<class IntegralType , std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>, class = std::enable_if_t<std::is_integral_v<IntegralType>>>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator+= ( IntegralType const rhs)
inlineconstexpr

Definition at line 398 of file discrete_vector.hpp.

◆ operator-=() [1/2]

template<class... Tags>
template<class... OTags>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator-= ( DiscreteVector< OTags... > const rhs)
inlineconstexpr

Definition at line 405 of file discrete_vector.hpp.

◆ operator-=() [2/2]

template<class... Tags>
template<class IntegralType , std::size_t N = sizeof...(Tags), class = std::enable_if_t<N == 1>, class = std::enable_if_t<std::is_integral_v<IntegralType>>>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator-= ( IntegralType const rhs)
inlineconstexpr

Definition at line 417 of file discrete_vector.hpp.

◆ operator*=()

template<class... Tags>
template<class... OTags>
KOKKOS_FUNCTION constexpr DiscreteVector & ddc::DiscreteVector< Tags >::operator*= ( DiscreteVector< OTags... > const rhs)
inlineconstexpr

Definition at line 424 of file discrete_vector.hpp.


The documentation for this class was generated from the following file: