Smith  0.1
Smith is an implicit thermal structural mechanics simulation code.
Classes | Namespaces | Typedefs | Functions
tuple.hpp File Reference

Smith tuple compatibility layer over mfem::future::tuple. More...

#include "mfem.hpp"
#include "smith/infrastructure/accelerator.hpp"
#include "smith/numerics/functional/tuple_tensor_dual_functions.hpp"
Include dependency graph for tuple.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mfem::future::tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 Smith compatibility extension for the MFEM tuple implementation. More...
 
struct  mfem::future::tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >
 Smith compatibility extension for the MFEM tuple implementation. More...
 

Namespaces

 smith
 Accelerator functionality.
 

Typedefs

template<typename... T>
using smith::tuple = mfem::future::tuple< T... >
 Expose MFEM tuple in the Smith namespace.
 
template<class... Types>
using smith::tuple_size = mfem::future::tuple_size< Types... >
 Alias for the MFEM tuple size trait.
 
template<size_t I, class T >
using smith::tuple_element = mfem::future::tuple_element< I, T >
 Alias for the MFEM tuple element trait.
 
template<typename T >
using smith::is_tuple = mfem::future::is_tuple< T >
 Alias for the MFEM tuple detection trait.
 
template<typename T >
using smith::is_tuple_of_tuples = mfem::future::is_tuple_of_tuples< T >
 Alias for the MFEM nested tuple detection trait.
 

Functions

template<int i, typename Tuple >
constexpr MFEM_HOST_DEVICE auto & mfem::future::detail::tuple_get_extended (Tuple &values)
 Return element i from a 10- or 11-element tuple.
 
template<int i, typename Tuple >
constexpr MFEM_HOST_DEVICE const auto & mfem::future::detail::tuple_get_extended (const Tuple &values)
 Return const element i from a 10- or 11-element tuple.
 
template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
constexpr MFEM_HOST_DEVICE auto & mfem::future::get (tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > &values)
 Return mutable element i from a 10-element tuple.
 
template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
constexpr MFEM_HOST_DEVICE auto & mfem::future::get (tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > &values)
 Return mutable element i from an 11-element tuple.
 
template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
constexpr MFEM_HOST_DEVICE const auto & mfem::future::get (const tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > &values)
 Return const element i from a 10-element tuple.
 
template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
constexpr MFEM_HOST_DEVICE const auto & mfem::future::get (const tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > &values)
 Return const element i from an 11-element tuple.
 
template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
constexpr MFEM_HOST_DEVICE auto mfem::future::type (const tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > &values)
 a function intended to be used for extracting the ith type from a tuple. More...
 
template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
constexpr MFEM_HOST_DEVICE auto mfem::future::type (const tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > &values)
 a function intended to be used for extracting the ith type from a tuple. More...
 

Detailed Description

Smith tuple compatibility layer over mfem::future::tuple.

Definition in file tuple.hpp.

Function Documentation

◆ type() [1/2]

template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
constexpr MFEM_HOST_DEVICE auto mfem::future::type ( const tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > &  values)
constexpr

a function intended to be used for extracting the ith type from a tuple.

Note
type<i>(my_tuple) returns a value, whereas get<i>(my_tuple) returns a reference
Template Parameters
ithe index of the tuple to query
T0The first type stored in the tuple
T1The second type stored in the tuple
T2The third type stored in the tuple
T3The fourth type stored in the tuple
T4The fifth type stored in the tuple
T5The sixth type stored in the tuple
T6The seventh type stored in the tuple
T7The eighth type stored in the tuple
T8The ninth type stored in the tuple
T9The tenth type stored in the tuple
Parameters
valuesthe tuple of values
Returns
a copy of the ith entry of the input

Definition at line 201 of file tuple.hpp.

◆ type() [2/2]

template<int i, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
constexpr MFEM_HOST_DEVICE auto mfem::future::type ( const tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > &  values)
constexpr

a function intended to be used for extracting the ith type from a tuple.

Note
type<i>(my_tuple) returns a value, whereas get<i>(my_tuple) returns a reference
Template Parameters
ithe index of the tuple to query
T0The first type stored in the tuple
T1The second type stored in the tuple
T2The third type stored in the tuple
T3The fourth type stored in the tuple
T4The fifth type stored in the tuple
T5The sixth type stored in the tuple
T6The seventh type stored in the tuple
T7The eighth type stored in the tuple
T8The ninth type stored in the tuple
T9The tenth type stored in the tuple
T10The eleventh type stored in the tuple
Parameters
valuesthe tuple of values
Returns
a copy of the ith entry of the input

Definition at line 229 of file tuple.hpp.