Morpheus 1.0.0
Dynamic matrix type and algorithms for sparse matrices
|
Mirroring Operations on Containers. More...
Functions | |
template<template< class, class... > class Container, class T , class... P> | |
Container< T, P... >::HostMirror | Morpheus::create_mirror (const Container< T, P... > &src, typename std::enable_if_t< is_container_v< Container< T, P... > > > *=nullptr) |
Allocates a mirror with the same characteristics as source on Host (specialization for different space) More... | |
template<class Space , template< class, class... > class Container, class T , class... P> | |
Impl::MirrorType< Space, Container, T, P... >::container_type | Morpheus::create_mirror (const Container< T, P... > &src, typename std::enable_if_t< is_container_v< Container< T, P... > > > *=nullptr) |
Create a mirror in a new space (specialization for different space) More... | |
template<template< class, class... > class Container, class T , class... P> | |
Container< T, P... >::HostMirror | Morpheus::create_mirror_container (const Container< T, P... > &src, typename std::enable_if_t< is_compatible_v< Container< T, P... >, typename Container< T, P... >::HostMirror > > *=nullptr) |
Creates a mirror container on Host (specialization for same space) More... | |
template<template< class, class... > class Container, class T , class... P> | |
Container< T, P... >::HostMirror | Morpheus::create_mirror_container (const Container< T, P... > &src, typename std::enable_if_t<!is_compatible_v< Container< T, P... >, typename Container< T, P... >::HostMirror > > *=nullptr) |
Creates a mirror container on Host (specialization for different space) More... | |
template<class Space , template< class, class... > class Container, class T , class... P> | |
Impl::MirrorContainerType< Space, Container, T, P... >::container_type | Morpheus::create_mirror_container (const Container< T, P... > &src, typename std::enable_if< Impl::MirrorContainerType< Space, Container, T, P... >::is_same_memspace &&is_container< Container< T, P... > >::value >::type *=nullptr) |
Create a mirror container in a new space (specialization for same space) More... | |
template<class Space , template< class, class... > class Container, class T , class... P> | |
Impl::MirrorContainerType< Space, Container, T, P... >::container_type | Morpheus::create_mirror_container (const Container< T, P... > &src, typename std::enable_if<!Impl::MirrorContainerType< Space, Container, T, P... >::is_same_memspace &&is_container< Container< T, P... > >::value >::type *=nullptr) |
Creates a mirror container in a new space (specialization for different space) More... | |
Mirroring Operations on Containers.
Container< T, P... >::HostMirror Morpheus::create_mirror | ( | const Container< T, P... > & | src, |
typename std::enable_if_t< is_container_v< Container< T, P... > > > * | = nullptr |
||
) |
Allocates a mirror with the same characteristics as source on Host (specialization for different space)
Container | |
T | The type of values held by the container |
P | Properties of the container |
src | The source container we are mirroring from |
create_mirror
operation always issues a new allocation and doesn't copy elements from source to mirror. Impl::MirrorType< Space, Container, T, P... >::container_type Morpheus::create_mirror | ( | const Container< T, P... > & | src, |
typename std::enable_if_t< is_container_v< Container< T, P... > > > * | = nullptr |
||
) |
Create a mirror in a new space (specialization for different space)
Space | The new space in which the mirror is created |
Container | |
T | The type of values held by the container |
P | Properties of the container |
src | The source container we are mirroring from |
create_mirror
operation always issues a new allocation. Impl::MirrorContainerType< Space, Container, T, P... >::container_type Morpheus::create_mirror_container | ( | const Container< T, P... > & | src, |
typename std::enable_if< Impl::MirrorContainerType< Space, Container, T, P... >::is_same_memspace &&is_container< Container< T, P... > >::value >::type * | = nullptr |
||
) |
Create a mirror container in a new space (specialization for same space)
Space | The new space in which the mirror is created |
Container | The type of the container to mirror |
T | The type of values held by the container |
P | Properties of the container |
src | The source container we are mirroring from |
Impl::MirrorContainerType< Space, Container, T, P... >::container_type Morpheus::create_mirror_container | ( | const Container< T, P... > & | src, |
typename std::enable_if<!Impl::MirrorContainerType< Space, Container, T, P... >::is_same_memspace &&is_container< Container< T, P... > >::value >::type * | = nullptr |
||
) |
Creates a mirror container in a new space (specialization for different space)
Space | The new space in which the mirror is created |
Container | The type of the container to mirror |
T | The type of values held by the container |
P | Properties of the container |
src | The source container we are mirroring from |
Container< T, P... >::HostMirror Morpheus::create_mirror_container | ( | const Container< T, P... > & | src, |
typename std::enable_if_t< is_compatible_v< Container< T, P... >, typename Container< T, P... >::HostMirror > > * | = nullptr |
||
) |
Creates a mirror container on Host (specialization for same space)
Container | The type of the container to mirror |
T | The type of values held by the container |
P | Properties of the container |
src | The source container we are mirroring from |
Container< T, P... >::HostMirror Morpheus::create_mirror_container | ( | const Container< T, P... > & | src, |
typename std::enable_if_t<!is_compatible_v< Container< T, P... >, typename Container< T, P... >::HostMirror > > * | = nullptr |
||
) |
Creates a mirror container on Host (specialization for different space)
Container | The type of the container to mirror |
T | The type of values held by the container |
P | Properties of the container |
src | The source container we are mirroring from |