Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr > Class Template Reference

#include <BlasUtil.h>

Classes

struct  storePacketBlock_helper
 
struct  storePacketBlock_helper< SubPacket, Scalar_, n, -1 >
 
struct  storePacketBlock_helper< SubPacket, std::complex< double >, n, -1 >
 
struct  storePacketBlock_helper< SubPacket, std::complex< double >, n, idx >
 
struct  storePacketBlock_helper< SubPacket, std::complex< float >, n, -1 >
 
struct  storePacketBlock_helper< SubPacket, std::complex< float >, n, idx >
 

Public Types

typedef BlasLinearMapper< Scalar, Index, AlignmentType, Incr > LinearMapper
 
typedef blas_data_mapper SubMapper
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE blas_data_mapper (Scalar *data, Index stride, Index incr)
 
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE SubMapper getSubMapper (Index i, Index j) const
 
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE LinearMapper getLinearMapper (Index i, Index j) const
 
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void prefetch (Index i, Index j) const
 
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Scalaroperator() (Index i, Index j) const
 
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE PacketType loadPacket (Index i, Index j) const
 
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE PacketType loadPacketPartial (Index i, Index j, Index n, Index=0) const
 
template<typename PacketT , int AlignmentT>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE PacketT load (Index i, Index j) const
 
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void storePacket (Index i, Index j, const PacketType &p) const
 
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void storePacketPartial (Index i, Index j, const PacketType &p, Index n, Index=0) const
 
template<typename SubPacket >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void scatterPacket (Index i, Index j, const SubPacket &p) const
 
template<typename SubPacket >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE SubPacket gatherPacket (Index i, Index j) const
 
template<typename SubPacket , int n>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void storePacketBlock (Index i, Index j, const PacketBlock< SubPacket, n > &block) const
 
EIGEN_DEVICE_FUNC const Index stride () const
 
EIGEN_DEVICE_FUNC const Index incr () const
 
constexpr EIGEN_DEVICE_FUNC Scalardata () const
 

Protected Attributes

Scalar *EIGEN_RESTRICT m_data
 
const Index m_stride
 
const internal::variable_if_dynamic< Index, Incr > m_incr
 

Member Typedef Documentation

◆ LinearMapper

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
typedef BlasLinearMapper<Scalar, Index, AlignmentType, Incr> Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::LinearMapper

◆ SubMapper

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
typedef blas_data_mapper Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::SubMapper

Constructor & Destructor Documentation

◆ blas_data_mapper()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::blas_data_mapper ( Scalar data,
Index  stride,
Index  incr 
)
inline
const internal::variable_if_dynamic< Index, Incr > m_incr
Definition: BlasUtil.h:438
Scalar *EIGEN_RESTRICT m_data
Definition: BlasUtil.h:436
constexpr EIGEN_DEVICE_FUNC Scalar * data() const
Definition: BlasUtil.h:433
const Index m_stride
Definition: BlasUtil.h:437
EIGEN_DEVICE_FUNC const Index stride() const
Definition: BlasUtil.h:431
EIGEN_DEVICE_FUNC const Index incr() const
Definition: BlasUtil.h:432

Member Function Documentation

◆ data()

◆ gatherPacket()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename SubPacket >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE SubPacket Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::gatherPacket ( Index  i,
Index  j 
) const
inline
359  {
360  return pgather<Scalar, SubPacket>(&operator()(i, j), m_stride);
361  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References i, j, and Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::m_stride.

◆ getLinearMapper()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE LinearMapper Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::getLinearMapper ( Index  i,
Index  j 
) const
inline
316  {
317  return LinearMapper(&operator()(i, j), m_incr.value());
318  }
BlasLinearMapper< Scalar, Index, AlignmentType, Incr > LinearMapper
Definition: BlasUtil.h:306
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:161

References i, j, Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::m_incr, and Eigen::internal::variable_if_dynamic< T, Value >::value().

◆ getSubMapper()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE SubMapper Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::getSubMapper ( Index  i,
Index  j 
) const
inline

◆ incr()

◆ load()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename PacketT , int AlignmentT>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE PacketT Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::load ( Index  i,
Index  j 
) const
inline

◆ loadPacket()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE PacketType Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::loadPacket ( Index  i,
Index  j 
) const
inline

◆ loadPacketPartial()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE PacketType Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::loadPacketPartial ( Index  i,
Index  j,
Index  n,
Index  = 0 
) const
inline
333  {
334  return pgather_partial<Scalar, PacketType>(&operator()(i, j), m_incr.value(), n);
335  }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11

References i, j, Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::m_incr, n, and Eigen::internal::variable_if_dynamic< T, Value >::value().

◆ operator()()

◆ prefetch()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::prefetch ( Index  i,
Index  j 
) const
inline
320 { internal::prefetch(&operator()(i, j)); }
EIGEN_DEVICE_FUNC void prefetch(const Scalar *addr)
Definition: GenericPacketMath.h:967

References i, j, and Eigen::internal::prefetch().

◆ scatterPacket()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename SubPacket >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::scatterPacket ( Index  i,
Index  j,
const SubPacket &  p 
) const
inline
354  {
355  pscatter<Scalar, SubPacket>(&operator()(i, j), p, m_stride);
356  }
float * p
Definition: Tutorial_Map_using.cpp:9

References i, j, Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::m_stride, and p.

◆ storePacket()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::storePacket ( Index  i,
Index  j,
const PacketType p 
) const
inline

◆ storePacketBlock()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename SubPacket , int n>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::storePacketBlock ( Index  i,
Index  j,
const PacketBlock< SubPacket, n > &  block 
) const
inline
426  {
427  storePacketBlock_helper<SubPacket, Scalar, n, n - 1> spb;
428  spb.store(this, i, j, block);
429  }
m m block(1, 0, 2, 2)<< 4
SCALAR Scalar
Definition: bench_gemm.cpp:45

References block(), i, j, and n.

◆ storePacketPartial()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
template<typename PacketType >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::storePacketPartial ( Index  i,
Index  j,
const PacketType p,
Index  n,
Index  = 0 
) const
inline
349  {
350  pscatter_partial<Scalar, PacketType>(&operator()(i, j), p, m_incr.value(), n);
351  }

References i, j, Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::m_incr, n, p, and Eigen::internal::variable_if_dynamic< T, Value >::value().

◆ stride()

template<typename Scalar , typename Index , int StorageOrder, int AlignmentType, int Incr>
EIGEN_DEVICE_FUNC const Index Eigen::internal::blas_data_mapper< Scalar, Index, StorageOrder, AlignmentType, Incr >::stride ( ) const
inline

Member Data Documentation

◆ m_data

◆ m_incr

◆ m_stride


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