MFEM v4.10.0
Finite element discretization library
Loading...
Searching...
No Matches
tuple.hpp File Reference

Go to the source code of this file.

Classes

struct  mfem::future::tuple< T >
 This is a class that mimics most of std::tuple's interface, except that it is usable in CUDA kernels and admits some arithmetic operator overloads. More...
 
struct  mfem::future::tuple<>
 Specialization for empty tuple. More...
 
struct  mfem::future::tuple_size< tuple< Types... > >
 
struct  mfem::future::tuple_element< I, tuple< Head, Tail... > >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  mfem::future::tuple_element< 0, tuple< Head, Tail... > >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  mfem::future::is_tuple< T >
 Trait for checking if a type is a mfem::tuple. More...
 
struct  mfem::future::is_tuple< tuple< T... > >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  mfem::future::is_tuple_of_tuples< T >
 Trait for checking if a type if a mfem::tuple containing only mfem::tuple. More...
 
struct  mfem::future::is_tuple_of_tuples< tuple< T... > >
 Trait for checking if a type if a mfem::tuple containing only mfem::tuple. More...
 
struct  std::tuple_size< mfem::future::tuple< T... > >
 Specialization of std::tuple_size for mfem::future::tuple. More...
 
struct  std::tuple_element< I, mfem::future::tuple< T... > >
 Specialization of std::tuple_element for mfem::future::tuple. More...
 

Namespaces

namespace  mfem
 
namespace  mfem::future
 
namespace  std
 STL namespace.
 

Functions

template<typename... T>
MFEM_HOST_DEVICE mfem::future::tuple (T...) -> tuple< T... >
 Class template argument deduction rule for tuples.
 
template<typename... T>
MFEM_HOST_DEVICE constexpr tuple< T... > mfem::future::make_tuple (const T &... args)
 helper function for combining a list of values into a tuple
 
template<size_t I, typename... T>
MFEM_HOST_DEVICE constexpr auto & mfem::future::get (tuple< T... > &t)
 return a reference to the ith tuple entry
 
template<size_t I, typename... T>
MFEM_HOST_DEVICE constexpr const auto & mfem::future::get (const tuple< T... > &t)
 return a const reference to the ith tuple entry
 
template<size_t I, typename... T>
MFEM_HOST_DEVICE constexpr auto && mfem::future::get (tuple< T... > &&t)
 return an rvalue reference to the ith tuple entry
 
template<size_t I, typename... T>
MFEM_HOST_DEVICE constexpr const auto && mfem::future::get (const tuple< T... > &&t)
 return a const rvalue reference to the ith tuple entry
 
template<size_t I, typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::type (const tuple< T... > &t)
 a function intended to be used for extracting the ith type from a tuple.
 
template<typename... S, typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator+ (const tuple< S... > &x, const tuple< T... > &y)
 return a tuple of values defined by elementwise sum of x and y
 
template<typename... S, typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator- (const tuple< S... > &x, const tuple< T... > &y)
 return a tuple of values defined by elementwise difference of x and y
 
template<typename... S, typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator* (const tuple< S... > &x, const tuple< T... > &y)
 return a tuple of values defined by elementwise multiplication of x and y
 
template<typename... S, typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator/ (const tuple< S... > &x, const tuple< T... > &y)
 return a tuple of values defined by elementwise division of x by y
 
template<typename... T>
MFEM_HOST_DEVICE constexpr tuple< T... > & mfem::future::operator+= (tuple< T... > &x, const tuple< T... > &y)
 add values contained in y, to the tuple x
 
template<typename... T>
MFEM_HOST_DEVICE constexpr tuple< T... > & mfem::future::operator-= (tuple< T... > &x, const tuple< T... > &y)
 subtract values contained in y from the tuple x
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator- (const tuple< T... > &x)
 return a tuple of values defined by applying the unary minus operator to each element of x
 
template<typename scalar_t , typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator* (scalar_t a, const tuple< T... > &x)
 multiply each component of x by the value a on the left
 
template<typename scalar_t , typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator* (const tuple< T... > &x, scalar_t a)
 multiply each component of x by the value a on the right
 
template<typename scalar_t , typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator/ (const tuple< T... > &x, scalar_t a)
 return a tuple of values defined by elementwise division of x by a
 
template<typename scalar_t , typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator/ (scalar_t a, const tuple< T... > &x)
 return a tuple of values defined by division of a by the elements of x
 
template<typename... T>
auto & mfem::future::operator<< (std::ostream &out, const tuple< T... > &t)
 print a tuple of values
 
template<typename F , typename... T>
MFEM_HOST_DEVICE auto mfem::future::apply (F &&f, tuple< T... > &args)
 a way of passing an n-tuple to a function that expects n separate arguments
 
template<typename F , typename... T>
MFEM_HOST_DEVICE auto mfem::future::apply (F &&f, const tuple< T... > &args)
 a way of passing an n-tuple to a function that expects n separate arguments
 
template<typename... T1s, typename... T2s>
constexpr auto mfem::future::merge_mfem_tuples_as_empty_std_tuple (const tuple< T1s... > &, const tuple< T2s... > &)
 Auxiliary template function that merges (concatenates) two mfem::future::tuple types into a single std::tuple that is empty, i.e. it is value initialized.