Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
|
Sparse product tensor with replicated entries to provide subsets with a given coordinate. More...
#include <Stokhos_CrsProductTensor.hpp>
Classes | |
struct | CijkRowCount |
struct | CompareCijkRowCount |
Public Types | |
typedef ExecutionSpace | execution_space |
typedef int | size_type |
typedef ValueType | value_type |
typedef Memory | memory_type |
typedef Kokkos::ViewTraits < size_type *, execution_space, void, void > ::host_mirror_space | host_mirror_space |
typedef CrsProductTensor < value_type, host_mirror_space > | HostMirror |
Public Member Functions | |
KOKKOS_INLINE_FUNCTION | ~CrsProductTensor () |
KOKKOS_INLINE_FUNCTION | CrsProductTensor () |
template<class M > | |
KOKKOS_INLINE_FUNCTION | CrsProductTensor (const CrsProductTensor< value_type, execution_space, M > &rhs) |
template<class M > | |
KOKKOS_INLINE_FUNCTION CrsProductTensor & | operator= (const CrsProductTensor< value_type, execution_space, M > &rhs) |
KOKKOS_INLINE_FUNCTION size_type | dimension () const |
Dimension of the tensor. More... | |
KOKKOS_INLINE_FUNCTION bool | is_empty () const |
Is the tensor empty. More... | |
KOKKOS_INLINE_FUNCTION size_type | entry_count () const |
Number of sparse entries. More... | |
KOKKOS_INLINE_FUNCTION size_type | entry_maximum () const |
Maximum sparse entries for any coordinate. More... | |
KOKKOS_INLINE_FUNCTION size_type | entry_begin (size_type i) const |
Begin entries with a coordinate 'i'. More... | |
KOKKOS_INLINE_FUNCTION size_type | entry_end (size_type i) const |
End entries with a coordinate 'i'. More... | |
KOKKOS_INLINE_FUNCTION size_type | num_entry (size_type i) const |
Number of entries with a coordinate 'i'. More... | |
KOKKOS_INLINE_FUNCTION const size_type & | coord (const size_type entry, const size_type c) const |
Coordinates of an entry. More... | |
KOKKOS_INLINE_FUNCTION const size_type & | coord (const size_type entry) const |
Coordinates of an entry. More... | |
KOKKOS_INLINE_FUNCTION const value_type & | value (const size_type entry) const |
Value of an entry. More... | |
KOKKOS_INLINE_FUNCTION size_type | num_non_zeros () const |
Number of non-zero's. More... | |
KOKKOS_INLINE_FUNCTION size_type | num_flops () const |
Number flop's per multiply-add. More... | |
KOKKOS_INLINE_FUNCTION size_type | avg_entries_per_row () const |
Number average number of entries per row. More... | |
Static Public Member Functions | |
template<typename OrdinalType > | |
static CrsProductTensor | create (const Stokhos::ProductBasis< OrdinalType, ValueType > &basis, const Stokhos::Sparse3Tensor< OrdinalType, ValueType > &Cijk, const Teuchos::ParameterList ¶ms=Teuchos::ParameterList()) |
static CrsProductTensor | createMeanBased () |
static HostMirror | create_mirror_view (const CrsProductTensor &tensor) |
template<class DstDevice , class DstMemory > | |
static void | deep_copy (const CrsProductTensor< ValueType, DstDevice, DstMemory > &dst, const CrsProductTensor &src) |
Static Public Attributes | |
static const size_type | host_vectorsize = 2 |
static const bool | use_intrinsics = false |
static const size_type | num_entry_align = 1 |
static const size_type | cuda_vectorsize = 32 |
static const bool | is_cuda |
static const size_type | vectorsize = is_cuda ? cuda_vectorsize : host_vectorsize |
static const size_type | tensor_align = vectorsize |
Private Types | |
typedef Kokkos::View < value_type *, Kokkos::LayoutLeft, execution_space, memory_type > | vec_type |
typedef Kokkos::View < size_type *, Kokkos::LayoutLeft, execution_space, memory_type > | coord_array_type |
typedef Kokkos::View < size_type *[2], Kokkos::LayoutLeft, execution_space, memory_type > | coord2_array_type |
typedef Kokkos::View < value_type *, Kokkos::LayoutLeft, execution_space, memory_type > | value_array_type |
typedef Kokkos::View < size_type *, Kokkos::LayoutLeft, execution_space, memory_type > | entry_array_type |
typedef Kokkos::View < size_type *, Kokkos::LayoutLeft, execution_space, memory_type > | row_map_array_type |
Friends | |
template<class , class , class > | |
class | CrsProductTensor |
Sparse product tensor with replicated entries to provide subsets with a given coordinate.
This allows product tensor multiplication to be partitioned on a given coordinate values.
for ( size_type i = 0 ; i < p.dimension() ; ++i ) { y[i] = 0 ; for ( size_type e = p.entry_begin(i) ; e < p.entry_end(i) ; ++e ) { const size_type j = p.coord(e,0); const size_type k = p.coord(e,1); Scalar tmp = a[j] * x[k] ; if ( j != k ) tmp += a[k] * x[j] ; y[i] += p.value(e) * tmp ; } }
Definition at line 80 of file Stokhos_CrsProductTensor.hpp.
typedef ExecutionSpace Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::execution_space |
Definition at line 83 of file Stokhos_CrsProductTensor.hpp.
typedef int Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::size_type |
Definition at line 84 of file Stokhos_CrsProductTensor.hpp.
typedef ValueType Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::value_type |
Definition at line 85 of file Stokhos_CrsProductTensor.hpp.
typedef Memory Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::memory_type |
Definition at line 86 of file Stokhos_CrsProductTensor.hpp.
typedef Kokkos::ViewTraits< size_type*, execution_space,void,void >::host_mirror_space Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::host_mirror_space |
Definition at line 88 of file Stokhos_CrsProductTensor.hpp.
typedef CrsProductTensor<value_type, host_mirror_space> Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::HostMirror |
Definition at line 89 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 121 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 122 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 123 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 124 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 125 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 126 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 158 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 161 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 175 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 190 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Dimension of the tensor.
Definition at line 207 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Is the tensor empty.
Definition at line 211 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number of sparse entries.
Definition at line 215 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Maximum sparse entries for any coordinate.
Definition at line 220 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Begin entries with a coordinate 'i'.
Definition at line 225 of file Stokhos_CrsProductTensor.hpp.
|
inline |
End entries with a coordinate 'i'.
Definition at line 230 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number of entries with a coordinate 'i'.
Definition at line 235 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Coordinates of an entry.
Definition at line 240 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Coordinates of an entry.
Definition at line 245 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Value of an entry.
Definition at line 250 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number of non-zero's.
Definition at line 255 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number flop's per multiply-add.
Definition at line 260 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number average number of entries per row.
Definition at line 265 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 270 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 426 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 483 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 503 of file Stokhos_CrsProductTensor.hpp.
|
friend |
Definition at line 119 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 101 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 102 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 103 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 105 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 106 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 112 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 115 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 128 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 129 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 130 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 131 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 132 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 133 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 134 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 135 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 136 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 137 of file Stokhos_CrsProductTensor.hpp.