|
using | traits = ContainerTraits< DenseVector, ValueType, Properties... > |
|
using | type = typename traits::type |
|
using | tag = typename VectorFormatTag< Morpheus::DenseVectorFormatTag >::tag |
|
using | value_type = typename traits::value_type |
|
using | non_const_value_type = typename traits::non_const_value_type |
|
using | size_type = typename traits::size_type |
|
using | index_type = typename traits::index_type |
|
using | non_const_index_type = typename traits::non_const_index_type |
|
using | array_layout = typename traits::array_layout |
|
using | backend = typename traits::backend |
|
using | memory_space = typename traits::memory_space |
|
using | execution_space = typename traits::execution_space |
|
using | device_type = typename traits::device_type |
|
using | memory_traits = typename traits::memory_traits |
|
using | HostMirror = typename traits::HostMirror |
|
using | pointer = typename traits::pointer |
|
using | const_pointer = typename traits::const_pointer |
|
using | reference = typename traits::reference |
|
using | const_reference = typename traits::const_reference |
|
using | value_array_type = Kokkos::View< value_type *, array_layout, execution_space, memory_traits > |
|
using | value_array_pointer = typename value_array_type::pointer_type |
|
using | value_array_reference = typename value_array_type::reference_type |
|
enum | |
|
enum | |
|
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 = DenseVector< value_type, index_type, array_layout, backend, memory_traits > |
| The complete type of the container.
|
|
using | HostMirror = DenseVector< 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.
|
|
|
| ~DenseVector ()=default |
| The default destructor.
|
|
| DenseVector (const DenseVector &)=default |
| The default copy contructor (shallow copy) of a DenseVector container from another DenseVector container with the same properties.
|
|
| DenseVector (DenseVector &&)=default |
| The default move contructor (shallow copy) of a DenseVector container from another DenseVector container with the same properties.
|
|
DenseVector & | operator= (const DenseVector &)=default |
| The default copy assignment (shallow copy) of a DenseVector container from another DenseVector container with the same properties.
|
|
DenseVector & | operator= (DenseVector &&)=default |
| The default move assignment (shallow copy) of a DenseVector container from another DenseVector container with the same properties.
|
|
| DenseVector () |
| Construct an empty DenseVector object.
|
|
| DenseVector (const size_type n, value_type val=0) |
| Construct a DenseVector object with size n and values set to val . More...
|
|
template<typename ValuePtr > |
| DenseVector (const size_type n, ValuePtr ptr, typename std::enable_if< std::is_pointer< ValuePtr >::value >::type *=nullptr) |
| Construct a DenseVector object from a raw pointer. This is only enabled if the DenseVector is an unmanaged container. More...
|
|
template<typename Generator > |
| DenseVector (const size_type n, Generator rand_pool, const value_type range_low, const value_type range_high) |
| Construct a DenseVector object with values from range_low to range_high . More...
|
|
template<class VR , class... PR> |
| DenseVector (const DenseVector< VR, PR... > &src, typename std::enable_if_t< is_compatible< DenseVector, DenseVector< VR, PR... > >::value > *=nullptr) |
| Shallow Copy contrustor from another DenseVector container with different properties. Note that this is only possible when the is_compatible check is satisfied. More...
|
|
template<class VR , class... PR> |
std::enable_if_t< is_compatible< DenseVector, DenseVector< VR, PR... > >::value, DenseVector & > | operator= (const DenseVector< VR, PR... > &src) |
| Shallow Copy Assignment from another DenseVector container with different properties. Note that this is only possible when the is_compatible check is satisfied. More...
|
|
template<class VR , class... PR> |
DenseVector & | allocate (const DenseVector< VR, PR... > &src) |
| Allocates memory from another DenseVector container with different properties. More...
|
|
void | assign (const size_type n, const value_type val) |
| Assigns n elements of value val to the DenseVector. More...
|
|
template<typename Generator > |
void | assign (const size_type n, Generator rand_pool, const value_type range_low, const value_type range_high) |
| Assigns n elements of values between range_low and range_high to the DenseVector. More...
|
|
MORPHEUS_FORCEINLINE_FUNCTION value_array_reference | operator() (const size_type i) const |
| Returns a reference to the element with index i . More...
|
|
MORPHEUS_FORCEINLINE_FUNCTION value_array_reference | operator[] (const size_type i) const |
| Returns a reference to the element with index i . More...
|
|
size_type | size () const |
| Returns the size of the container. More...
|
|
value_array_pointer | data () const |
| Returns a pointer to the data at the beginning of the container. More...
|
|
value_array_type & | view () |
| Returns a reference to the beginning of the view that holds the data. More...
|
|
const value_array_type & | const_view () const |
| Returns a constant reference to the beginning of the view that holds the data. More...
|
|
void | resize (const size_type n) |
| Resizes DenseVector with size of n and sets values to zero. More...
|
|
void | resize (const size_type n, const value_type val) |
| Resizes DenseVector with size of n and sets values to val . Note that compared to assign() member function, resize operation always changes the size of the container. More...
|
|
template<class VR , class... PR> |
void | resize (const DenseVector< VR, PR... > &src) |
| Resizes DenseVector with the shape another DenseVector with different parameters. More...
|
|
template<class
ValueType, class... Properties>
class Morpheus::DenseVector< ValueType, Properties >
The DenseVector container is a one-dimensional container that contains contiguous elements. It is a polymorphic container in the sense that it can store scalar or integer type values, on host or device depending how the template parameters are selected.
- Template Parameters
-
ValueType | type of values to store |
Properties | optional properties to modify the behaviour of the container. Sensible defaults are selected based on the configuration. Please refer to impl/Morpheus_ContainerTraits.hpp to find out more about the valid properties. |
- Overview
- TODO
- Example
#include <Morpheus_Core.hpp>
int main(){
x[2] = 5.0;
x[5] = -2.0;
}
The DenseVector container is a one-dimensional container that contains contiguous elements....
Definition: Morpheus_DenseVector.hpp:83