Eigen::DSizes< DenseIndex, NumDims > Struct Template Reference

#include <TensorDimensions.h>

+ Inheritance diagram for Eigen::DSizes< DenseIndex, NumDims >:

Public Types

typedef array< DenseIndex, NumDims > Base
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rank () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex TotalSize () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DSizes ()
 
EIGEN_DEVICE_FUNC DSizes (const array< DenseIndex, NumDims > &a)
 
EIGEN_DEVICE_FUNC DSizes (const DenseIndex i0)
 
EIGEN_DEVICE_FUNC DSizes (const DimensionList< DenseIndex, NumDims > &a)
 
template<typename OtherIndex >
EIGEN_DEVICE_FUNC DSizes (const array< OtherIndex, NumDims > &other, std::enable_if_t< internal::is_same< DenseIndex, typename internal::promote_index_type< DenseIndex, OtherIndex >::type >::value, void * >=0)
 
template<typename FirstType , typename... OtherTypes>
EIGEN_DEVICE_FUNC DSizes (const Eigen::IndexList< FirstType, OtherTypes... > &dimensions)
 
template<typename std::ptrdiff_t... Indices>
EIGEN_DEVICE_FUNC DSizes (const Sizes< Indices... > &a)
 
template<typename... IndexTypes>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DSizes (DenseIndex firstDimension, DenseIndex secondDimension, IndexTypes... otherDimensions)
 
EIGEN_DEVICE_FUNC DSizesoperator= (const array< DenseIndex, NumDims > &other)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex IndexOfColMajor (const array< DenseIndex, NumDims > &indices) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex IndexOfRowMajor (const array< DenseIndex, NumDims > &indices) const
 

Static Public Attributes

static const int count = NumDims
 

Member Typedef Documentation

◆ Base

template<typename DenseIndex , int NumDims>
typedef array<DenseIndex, NumDims> Eigen::DSizes< DenseIndex, NumDims >::Base

Constructor & Destructor Documentation

◆ DSizes() [1/8]

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::DSizes< DenseIndex, NumDims >::DSizes ( )
inline
171  {
172  for (int i = 0; i < NumDims; ++i) {
173  (*this)[i] = 0;
174  }
175  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9

References i.

◆ DSizes() [2/8]

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC Eigen::DSizes< DenseIndex, NumDims >::DSizes ( const array< DenseIndex, NumDims > &  a)
inlineexplicit
176 : Base(a) {}
const Scalar * a
Definition: level2_cplx_impl.h:32
array< DenseIndex, NumDims > Base
Definition: TensorDimensions.h:162

◆ DSizes() [3/8]

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC Eigen::DSizes< DenseIndex, NumDims >::DSizes ( const DenseIndex  i0)
inlineexplicit
178  {
179  eigen_assert(NumDims == 1);
180  (*this)[0] = i0;
181  }
#define eigen_assert(x)
Definition: Macros.h:910

References eigen_assert.

◆ DSizes() [4/8]

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC Eigen::DSizes< DenseIndex, NumDims >::DSizes ( const DimensionList< DenseIndex, NumDims > &  a)
inline
183  {
184  for (int i = 0; i < NumDims; ++i) {
185  (*this)[i] = a[i];
186  }
187  }

References a, and i.

◆ DSizes() [5/8]

template<typename DenseIndex , int NumDims>
template<typename OtherIndex >
EIGEN_DEVICE_FUNC Eigen::DSizes< DenseIndex, NumDims >::DSizes ( const array< OtherIndex, NumDims > &  other,
std::enable_if_t< internal::is_same< DenseIndex, typename internal::promote_index_type< DenseIndex, OtherIndex >::type >::value, void * >  = 0 
)
inlineexplicit
197  {
198  for (int i = 0; i < NumDims; ++i) {
199  (*this)[i] = static_cast<DenseIndex>(other[i]);
200  }
201  }
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
Definition: Meta.h:75

References i.

◆ DSizes() [6/8]

template<typename DenseIndex , int NumDims>
template<typename FirstType , typename... OtherTypes>
EIGEN_DEVICE_FUNC Eigen::DSizes< DenseIndex, NumDims >::DSizes ( const Eigen::IndexList< FirstType, OtherTypes... > &  dimensions)
inlineexplicit
204  {
205  for (int i = 0; i < dimensions.count; ++i) {
206  (*this)[i] = dimensions[i];
207  }
208  }

References i.

◆ DSizes() [7/8]

template<typename DenseIndex , int NumDims>
template<typename std::ptrdiff_t... Indices>
EIGEN_DEVICE_FUNC Eigen::DSizes< DenseIndex, NumDims >::DSizes ( const Sizes< Indices... > &  a)
inline
211  {
212  for (int i = 0; i < NumDims; ++i) {
213  (*this)[i] = a[i];
214  }
215  }

References a, and i.

◆ DSizes() [8/8]

template<typename DenseIndex , int NumDims>
template<typename... IndexTypes>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::DSizes< DenseIndex, NumDims >::DSizes ( DenseIndex  firstDimension,
DenseIndex  secondDimension,
IndexTypes...  otherDimensions 
)
inlineexplicit
220  : Base({{firstDimension, secondDimension, otherDimensions...}}) {
221  EIGEN_STATIC_ASSERT(sizeof...(otherDimensions) + 2 == NumDims, YOU_MADE_A_PROGRAMMING_MISTAKE)
222  }
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26

Member Function Documentation

◆ IndexOfColMajor()

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex Eigen::DSizes< DenseIndex, NumDims >::IndexOfColMajor ( const array< DenseIndex, NumDims > &  indices) const
inline
230  {
232  indices, *static_cast<const Base*>(this));
233  }
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index run(array< Index, NumIndices > const &indices, array< Index, NumIndices > const &dimensions)
Definition: TensorDimensions.h:139

References Eigen::internal::tensor_index_linearization_helper< Index, NumIndices, n, RowMajor >::run().

Referenced by Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >::linearizedIndex().

◆ IndexOfRowMajor()

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex Eigen::DSizes< DenseIndex, NumDims >::IndexOfRowMajor ( const array< DenseIndex, NumDims > &  indices) const
inline

◆ operator=()

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC DSizes& Eigen::DSizes< DenseIndex, NumDims >::operator= ( const array< DenseIndex, NumDims > &  other)
inline
224  {
225  *static_cast<Base*>(this) = other;
226  return *this;
227  }

◆ rank()

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index Eigen::DSizes< DenseIndex, NumDims >::rank ( ) const
inline

◆ TotalSize()

template<typename DenseIndex , int NumDims>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex Eigen::DSizes< DenseIndex, NumDims >::TotalSize ( ) const
inline
167  {
168  return (NumDims == 0) ? 1 : internal::array_prod(*static_cast<const Base*>(this));
169  }
constexpr EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE auto array_prod(const array< T, N > &arr) -> decltype(array_reduce< product_op, T, N >(arr, static_cast< T >(1)))
Definition: MoreMeta.h:497

References Eigen::internal::array_prod().

Referenced by Eigen::internal::TensorBlockMapper< NumDims, Layout, IndexType >::blockTotalSize(), Eigen::TensorEvaluator< const TensorBroadcastingOp< Broadcast, ArgType >, Device >::BroadcastBlock(), Eigen::internal::TensorBlockIO< Scalar, IndexType, NumDims, Layout >::Copy(), Eigen::internal::TensorBlockMapper< NumDims, Layout, IndexType >::InitializeBlockDimensions(), RandomTargetBlockSize(), RandomTargetSize(), Eigen::internal::TensorBlockAssignment< Scalar, NumDims, TensorBlockExpr, IndexType >::Run(), SkewedInnerBlock(), test_block_io_copy_data_from_source_to_target(), test_block_io_copy_using_reordered_dimensions(), test_block_io_squeeze_ones(), test_block_mapper_maps_every_element(), test_broadcast_sycl(), test_broadcast_sycl_fixed(), test_composition(), test_concatenation_as_lvalue(), test_custom_binary_op_sycl(), test_custom_unary_op_sycl(), test_dynamic_size(), test_expr_reverse(), test_first_dim_reductions_max_sycl(), test_first_dim_reductions_mean_sycl(), test_first_dim_reductions_sum_sycl(), test_forced_eval_sycl(), test_full_reductions_max_sycl(), test_full_reductions_mean_sycl(), test_full_reductions_min_sycl(), test_full_reductions_sum_sycl(), test_large_contraction_with_output_kernel(), test_last_dim_reductions_mean_sycl(), test_last_dim_reductions_sum_sycl(), test_multithread_contraction_with_output_kernel(), test_rank_zero(), test_sharded_by_inner_dim_contraction(), test_sharded_by_inner_dim_contraction_with_output_kernel(), test_simple_concatenation(), and test_simple_reverse().

Member Data Documentation

◆ count

template<typename DenseIndex , int NumDims>
const int Eigen::DSizes< DenseIndex, NumDims >::count = NumDims
static

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