Morpheus 1.0.0
Dynamic matrix type and algorithms for sparse matrices
Loading...
Searching...
No Matches
Public Types | List of all members
Morpheus::ContainerTraits< Container, ValueType, Properties > Class Template Reference

Traits class for accessing attributes of a Container (Matrix or Vector) More...

#include <Morpheus_ContainerTraits.hpp>

Inheritance diagram for Morpheus::ContainerTraits< Container, ValueType, Properties >:
Inheritance graph
[legend]

Public Types

enum  { is_hostspace = std::is_same<MemorySpace, Kokkos::HostSpace>::value }
 
enum  { is_managed = MemoryTraits::is_unmanaged == 0 }
 
using value_type = ValueType
 The type of values held by the container.
 
using const_value_type = typename std::add_const< ValueType >::type
 The const type of values held by the container.
 
using non_const_value_type = typename std::remove_const< ValueType >::type
 The non-const type of values held by the container.
 
using index_type = IndexType
 The type of indices held by the container.
 
using size_type = size_t
 The size type of the container.
 
using non_const_index_type = typename std::remove_const< IndexType >::type
 The non-const type of indices held by the container.
 
using array_layout = ArrayLayout
 The storage layout of data held by the container.
 
using backend = Backend
 The backend out of which algorithms will be dispatched from.
 
using execution_space = ExecutionSpace
 The space in which member functions will be executed in.
 
using memory_space = MemorySpace
 The space in which data will be stored in.
 
using device_type = Morpheus::Device< execution_space, memory_space, backend >
 A device aware of the execution, memory spaces and backend.
 
using memory_traits = MemoryTraits
 Represents the user's intended access behaviour.
 
using host_mirror_backend = typename Morpheus::HostMirror< backend >::backend
 The host equivalent backend.
 
using type = Container< value_type, index_type, array_layout, backend, memory_traits >
 The complete type of the container.
 
using HostMirror = Container< non_const_value_type, non_const_index_type, array_layout, Morpheus::Device< typename host_mirror_backend::execution_space, typename host_mirror_backend::memory_space, typename host_mirror_backend::backend >, typename Kokkos::MemoryManaged >
 The host mirror equivalent for the container. More...
 
using pointer = typename std::add_pointer< type >::type
 The pointer type of the container.
 
using const_pointer = typename std::add_pointer< typename std::add_const< type >::type >::type
 The const pointer type of the container.
 
using reference = typename std::add_lvalue_reference< type >::type
 The reference type of the container.
 
using const_reference = typename std::add_lvalue_reference< typename std::add_const< type >::type >::type
 The const reference type of the container.
 

Detailed Description

template<template< class, class... > class Container, class ValueType, class... Properties>
class Morpheus::ContainerTraits< Container, ValueType, Properties >

Traits class for accessing attributes of a Container (Matrix or Vector)

Template argument options:

Member Typedef Documentation

◆ HostMirror

template<template< class, class... > class Container, class ValueType , class... Properties>
using Morpheus::ContainerTraits< Container, ValueType, Properties >::HostMirror = Container<non_const_value_type, non_const_index_type, array_layout, Morpheus::Device<typename host_mirror_backend::execution_space, typename host_mirror_backend::memory_space, typename host_mirror_backend::backend>, typename Kokkos::MemoryManaged>

The host mirror equivalent for the container.

Note
HostMirror is assumed to always be a managed container.

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