MFEM v4.9.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< T0 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3, T4 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3, T4, T5 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3, T4, T5, T6 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3, T4, T5, T6, T7 >
 Type that mimics std::tuple. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
 
struct  mfem::future::tuple_size< Types >
 
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...
 

Namespaces

namespace  mfem
 
namespace  mfem::future
 

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 tuple< T... > mfem::future::make_tuple (const T &... args)
 helper function for combining a list of values into a tuple
 
template<int i, typename... T>
MFEM_HOST_DEVICE constexpr auto & mfem::future::get (tuple< T... > &values)
 return a reference to the ith tuple entry
 
template<int i, typename... T>
MFEM_HOST_DEVICE constexpr const auto & mfem::future::get (const tuple< T... > &values)
 return a copy of the ith tuple entry
 
template<int i, typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::type (const tuple< T... > &values)
 a function intended to be used for extracting the ith type from a tuple.
 
template<typename... S, typename... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::plus_helper (const tuple< S... > &x, const tuple< T... > &y, std::integer_sequence< int, i... >)
 A helper function for the + operator of tuples.
 
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... T, int... i>
MFEM_HOST_DEVICE constexpr void mfem::future::plus_equals_helper (tuple< T... > &x, const tuple< T... > &y, std::integer_sequence< int, i... >)
 A helper function for the += operator of tuples.
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator+= (tuple< T... > &x, const tuple< T... > &y)
 add values contained in y, to the tuple x
 
template<typename... T, int... i>
MFEM_HOST_DEVICE constexpr void mfem::future::minus_equals_helper (tuple< T... > &x, const tuple< T... > &y, std::integer_sequence< int, i... >)
 A helper function for the -= operator of tuples.
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator-= (tuple< T... > &x, const tuple< T... > &y)
 add values contained in y, to the tuple x
 
template<typename... S, typename... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::minus_helper (const tuple< S... > &x, const tuple< T... > &y, std::integer_sequence< int, i... >)
 A helper function for the - operator of tuples.
 
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... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::unary_minus_helper (const tuple< T... > &x, std::integer_sequence< int, i... >)
 A helper function for the - operator of tuples.
 
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... S, typename... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::div_helper (const tuple< S... > &x, const tuple< T... > &y, std::integer_sequence< int, i... >)
 A helper function for the / operator of tuples.
 
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, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::div_helper (const real_t a, const tuple< T... > &x, std::integer_sequence< int, i... >)
 A helper function for the / operator of tuples.
 
template<typename... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::div_helper (const tuple< T... > &x, const real_t a, std::integer_sequence< int, i... >)
 A helper function for the / operator of tuples.
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator/ (const real_t a, const tuple< T... > &x)
 return a tuple of values defined by division of a by the elements of x
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator/ (const tuple< T... > &x, const real_t a)
 return a tuple of values defined by elementwise division of x by a
 
template<typename... S, typename... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::mult_helper (const tuple< S... > &x, const tuple< T... > &y, std::integer_sequence< int, i... >)
 A helper function for the * operator of tuples.
 
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... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::mult_helper (const real_t a, const tuple< T... > &x, std::integer_sequence< int, i... >)
 A helper function for the * operator of tuples.
 
template<typename... T, int... i>
MFEM_HOST_DEVICE constexpr auto mfem::future::mult_helper (const tuple< T... > &x, const real_t a, std::integer_sequence< int, i... >)
 A helper function for the * operator of tuples.
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator* (const real_t a, const tuple< T... > &x)
 multiply each component of x by the value a on the left
 
template<typename... T>
MFEM_HOST_DEVICE constexpr auto mfem::future::operator* (const tuple< T... > &x, const real_t a)
 multiply each component of x by the value a on the right
 
template<typename... T, std::size_t... i>
auto & mfem::future::print_helper (std::ostream &out, const tuple< T... > &A, std::integer_sequence< size_t, i... >)
 helper used to implement printing a tuple of values
 
template<typename... T>
auto & mfem::future::operator<< (std::ostream &out, const tuple< T... > &A)
 print a tuple of values
 
template<typename lambda , typename... T, int... i>
MFEM_HOST_DEVICE auto mfem::future::apply_helper (lambda f, tuple< T... > &args, std::integer_sequence< int, i... >)
 A helper to apply a lambda to a tuple.
 
template<typename lambda , typename... T>
MFEM_HOST_DEVICE auto mfem::future::apply (lambda f, tuple< T... > &args)
 a way of passing an n-tuple to a function that expects n separate arguments
 
template<typename lambda , typename... T, int... i>
MFEM_HOST_DEVICE auto mfem::future::apply_helper (lambda f, const tuple< T... > &args, std::integer_sequence< int, i... >)
 
template<typename lambda , typename... T>
MFEM_HOST_DEVICE auto mfem::future::apply (lambda 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 mfem::future::tuple< T1s... > &, const mfem::future::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.