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 > | host_mirror_type |
typedef host_mirror_type | 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 host_mirror_type | 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 46 of file Stokhos_CrsProductTensor.hpp.
typedef ExecutionSpace Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::execution_space |
Definition at line 49 of file Stokhos_CrsProductTensor.hpp.
typedef int Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::size_type |
Definition at line 50 of file Stokhos_CrsProductTensor.hpp.
typedef ValueType Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::value_type |
Definition at line 51 of file Stokhos_CrsProductTensor.hpp.
typedef Memory Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::memory_type |
Definition at line 52 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 54 of file Stokhos_CrsProductTensor.hpp.
typedef CrsProductTensor<value_type, host_mirror_space> Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::host_mirror_type |
Definition at line 55 of file Stokhos_CrsProductTensor.hpp.
typedef host_mirror_type Stokhos::CrsProductTensor< ValueType, ExecutionSpace, Memory >::HostMirror |
Definition at line 56 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 88 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 89 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 90 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 91 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 92 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 93 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 125 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 128 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 142 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Definition at line 157 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Dimension of the tensor.
Definition at line 174 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Is the tensor empty.
Definition at line 178 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number of sparse entries.
Definition at line 182 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Maximum sparse entries for any coordinate.
Definition at line 187 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Begin entries with a coordinate 'i'.
Definition at line 192 of file Stokhos_CrsProductTensor.hpp.
|
inline |
End entries with a coordinate 'i'.
Definition at line 197 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number of entries with a coordinate 'i'.
Definition at line 202 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Coordinates of an entry.
Definition at line 207 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Coordinates of an entry.
Definition at line 212 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Value of an entry.
Definition at line 217 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number of non-zero's.
Definition at line 222 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number flop's per multiply-add.
Definition at line 227 of file Stokhos_CrsProductTensor.hpp.
|
inline |
Number average number of entries per row.
Definition at line 232 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 237 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 393 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 450 of file Stokhos_CrsProductTensor.hpp.
|
inlinestatic |
Definition at line 470 of file Stokhos_CrsProductTensor.hpp.
|
friend |
Definition at line 86 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 68 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 69 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 70 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 72 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 73 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 79 of file Stokhos_CrsProductTensor.hpp.
|
static |
Definition at line 82 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 95 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 96 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 97 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 98 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 99 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 100 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 101 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 102 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 103 of file Stokhos_CrsProductTensor.hpp.
|
private |
Definition at line 104 of file Stokhos_CrsProductTensor.hpp.