Eigen::internal::ScanLauncher< Self, Reducer, Device, Vectorize > Struct Template Reference

#include <TensorScan.h>

Public Member Functions

void operator() (Self &self, typename Self::CoeffReturnType *data) const
 

Member Function Documentation

◆ operator()()

template<typename Self , typename Reducer , typename Device , bool Vectorize = (TensorEvaluator<typename Self::ChildTypeNoConst, Device>::PacketAccess && internal::reducer_traits<Reducer, Device>::PacketAccess)>
void Eigen::internal::ScanLauncher< Self, Reducer, Device, Vectorize >::operator() ( Self &  self,
typename Self::CoeffReturnType *  data 
) const
inline
180  {
181  Index total_size = internal::array_prod(self.dimensions());
182 
183  // We fix the index along the scan axis to 0 and perform a
184  // scan per remaining entry. The iteration is split into two nested
185  // loops to avoid an integer division by keeping track of each idx1 and
186  // idx2.
187  for (Index idx1 = 0; idx1 < total_size; idx1 += self.stride() * self.size()) {
188  ReduceBlock<Self, Vectorize, /*Parallel=*/false> block_reducer;
189  block_reducer(self, idx1, data);
190  }
191  }
int data[]
Definition: Map_placement_new.cpp:1
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
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
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83

References Eigen::internal::array_prod(), data, and size.


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