ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
container::TensorAccessorBase< T, N, index_t, PtrTraits > Class Template Reference

#include <tensor_accessor.h>

Inheritance diagram for container::TensorAccessorBase< T, N, index_t, PtrTraits >:
Collaboration diagram for container::TensorAccessorBase< T, N, index_t, PtrTraits >:

Public Types

using PtrType = typename PtrTraits< T >::PtrType
 

Public Member Functions

AT_HOST_DEVICE TensorAccessorBase (PtrType data, const index_t *sizes, const index_t *strides)
 
AT_HOST int_array_ref sizes () const
 
AT_HOST int_array_ref strides () const
 
AT_HOST_DEVICE index_t stride (index_t idx) const
 
AT_HOST_DEVICE index_t size (index_t idx) const
 
AT_HOST_DEVICE PtrType data ()
 
AT_HOST_DEVICE const PtrType data () const
 

Protected Attributes

Tdata_
 
const index_t * sizes_
 
const index_t * strides_
 

Member Typedef Documentation

◆ PtrType

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
using container::TensorAccessorBase< T, N, index_t, PtrTraits >::PtrType = typename PtrTraits<T>::PtrType

Constructor & Destructor Documentation

◆ TensorAccessorBase()

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST_DEVICE container::TensorAccessorBase< T, N, index_t, PtrTraits >::TensorAccessorBase ( PtrType  data,
const index_t *  sizes,
const index_t *  strides 
)
inline

Member Function Documentation

◆ data() [1/2]

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST_DEVICE PtrType container::TensorAccessorBase< T, N, index_t, PtrTraits >::data ( )
inline

◆ data() [2/2]

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST_DEVICE const PtrType container::TensorAccessorBase< T, N, index_t, PtrTraits >::data ( ) const
inline

◆ size()

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST_DEVICE index_t container::TensorAccessorBase< T, N, index_t, PtrTraits >::size ( index_t  idx) const
inline

◆ sizes()

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST int_array_ref container::TensorAccessorBase< T, N, index_t, PtrTraits >::sizes ( ) const
inline

◆ stride()

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST_DEVICE index_t container::TensorAccessorBase< T, N, index_t, PtrTraits >::stride ( index_t  idx) const
inline

◆ strides()

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
AT_HOST int_array_ref container::TensorAccessorBase< T, N, index_t, PtrTraits >::strides ( ) const
inline

Member Data Documentation

◆ data_

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
T* container::TensorAccessorBase< T, N, index_t, PtrTraits >::data_
protected

◆ sizes_

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
const index_t* container::TensorAccessorBase< T, N, index_t, PtrTraits >::sizes_
protected

◆ strides_

template<typename T , size_t N, typename index_t = int64_t, template< typename U > class PtrTraits = DefaultPtrTraits>
const index_t* container::TensorAccessorBase< T, N, index_t, PtrTraits >::strides_
protected

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