|
Stokhos
Development
|
Sparse product tensor with replicated entries to provide subsets with a given coordinate. More...
#include <Stokhos_CrsProductTensor.hpp>
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 | |
| 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. | |
| KOKKOS_INLINE_FUNCTION bool | is_empty () const |
| Is the tensor empty. | |
| KOKKOS_INLINE_FUNCTION size_type | entry_count () const |
| Number of sparse entries. | |
| KOKKOS_INLINE_FUNCTION size_type | entry_maximum () const |
| Maximum sparse entries for any coordinate. | |
| KOKKOS_INLINE_FUNCTION size_type | entry_begin (size_type i) const |
| Begin entries with a coordinate 'i'. | |
| KOKKOS_INLINE_FUNCTION size_type | entry_end (size_type i) const |
| End entries with a coordinate 'i'. | |
| KOKKOS_INLINE_FUNCTION size_type | num_entry (size_type i) const |
| Number of entries with a coordinate 'i'. | |
|
KOKKOS_INLINE_FUNCTION const size_type & | coord (const size_type entry, const size_type c) const |
| Coordinates of an entry. | |
|
KOKKOS_INLINE_FUNCTION const size_type & | coord (const size_type entry) const |
| Coordinates of an entry. | |
|
KOKKOS_INLINE_FUNCTION const value_type & | value (const size_type entry) const |
| Value of an entry. | |
| KOKKOS_INLINE_FUNCTION size_type | num_non_zeros () const |
| Number of non-zero's. | |
| KOKKOS_INLINE_FUNCTION size_type | num_flops () const |
| Number flop's per multiply-add. | |
| KOKKOS_INLINE_FUNCTION size_type | avg_entries_per_row () const |
| Number average number of entries per row. | |
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) |
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 ; } }
|
static |
1.8.5