Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess > Class Template Reference

#include <src/eigen/Eigen/src/Core/Block.h>

+ Inheritance diagram for Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >:
+ Collaboration diagram for Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >:

Public Types

typedef internal::dense_xpr_base< BlockType >::type Base
 

Public Member Functions

EIGEN_DEVICE_FUNC BlockImpl_dense (XprType &xpr, Index i)
 
EIGEN_DEVICE_FUNC BlockImpl_dense (XprType &xpr, Index startRow, Index startCol)
 
EIGEN_DEVICE_FUNC BlockImpl_dense (XprType &xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
 
EIGEN_DEVICE_FUNC Index rows () const
 
EIGEN_DEVICE_FUNC Index cols () const
 
EIGEN_DEVICE_FUNC Scalar & coeffRef (Index rowId, Index colId)
 
EIGEN_DEVICE_FUNC const Scalar & coeffRef (Index rowId, Index colId) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CoeffReturnType coeff (Index rowId, Index colId) const
 
EIGEN_DEVICE_FUNC Scalar & coeffRef (Index index)
 
EIGEN_DEVICE_FUNC const Scalar & coeffRef (Index index) const
 
EIGEN_DEVICE_FUNC const CoeffReturnType coeff (Index index) const
 
template<int LoadMode>
PacketScalar packet (Index rowId, Index colId) const
 
template<int LoadMode>
void writePacket (Index rowId, Index colId, const PacketScalar &val)
 
template<int LoadMode>
PacketScalar packet (Index index) const
 
template<int LoadMode>
void writePacket (Index index, const PacketScalar &val)
 
EIGEN_DEVICE_FUNC const internal::remove_all< XprTypeNested >::type & nestedExpression () const
 
EIGEN_DEVICE_FUNC XprType & nestedExpression ()
 
EIGEN_DEVICE_FUNC StorageIndex startRow () const
 
EIGEN_DEVICE_FUNC StorageIndex startCol () const
 

Protected Attributes

XprTypeNested m_xpr
 
const internal::variable_if_dynamic< StorageIndex,(XprType::RowsAtCompileTime==1 &&BlockRows==1) ? 0 :Dynamicm_startRow
 
const internal::variable_if_dynamic< StorageIndex,(XprType::ColsAtCompileTime==1 &&BlockCols==1) ? 0 :Dynamicm_startCol
 
const internal::variable_if_dynamic< StorageIndex, RowsAtCompileTime > m_blockRows
 
const internal::variable_if_dynamic< StorageIndex, ColsAtCompileTime > m_blockCols
 

Private Types

typedef Block< XprType, BlockRows, BlockCols, InnerPanel > BlockType
 
typedef internal::ref_selector< XprType >::non_const_type XprTypeNested
 

Detailed Description

template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
class Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >

Member Typedef Documentation

◆ Base

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
typedef internal::dense_xpr_base<BlockType>::type Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::Base

◆ BlockType

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
typedef Block<XprType, BlockRows, BlockCols, InnerPanel> Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::BlockType
private

◆ XprTypeNested

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
typedef internal::ref_selector<XprType>::non_const_type Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::XprTypeNested
private

Constructor & Destructor Documentation

◆ BlockImpl_dense() [1/3]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::BlockImpl_dense ( XprType &  xpr,
Index  i 
)
inline

Column or Row constructor

189 : m_xpr(xpr),
190 // It is a row if and only if BlockRows==1 and BlockCols==XprType::ColsAtCompileTime,
191 // and it is a column if and only if BlockRows==XprType::RowsAtCompileTime and BlockCols==1,
192 // all other cases are invalid.
193 // The case a 1x1 matrix seems ambiguous, but the result is the same anyway.
194 m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
195 m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
196 m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
197 m_blockCols(BlockCols==1 ? 1 : xpr.cols())
198 {}
const internal::variable_if_dynamic< StorageIndex,(XprType::ColsAtCompileTime==1 &&BlockCols==1) ? 0 :Dynamic > m_startCol
Definition Block.h:322
EIGEN_DEVICE_FUNC Index rows() const
Definition Block.h:218
const internal::variable_if_dynamic< StorageIndex, ColsAtCompileTime > m_blockCols
Definition Block.h:324
XprTypeNested m_xpr
Definition Block.h:320
const internal::variable_if_dynamic< StorageIndex,(XprType::RowsAtCompileTime==1 &&BlockRows==1) ? 0 :Dynamic > m_startRow
Definition Block.h:321
const internal::variable_if_dynamic< StorageIndex, RowsAtCompileTime > m_blockRows
Definition Block.h:323
EIGEN_DEVICE_FUNC Index cols() const
Definition Block.h:219

◆ BlockImpl_dense() [2/3]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::BlockImpl_dense ( XprType &  xpr,
Index  startRow,
Index  startCol 
)
inline

Fixed-size constructor

205 m_blockRows(BlockRows), m_blockCols(BlockCols)
206 {}
EIGEN_DEVICE_FUNC StorageIndex startRow() const
Definition Block.h:307
EIGEN_DEVICE_FUNC StorageIndex startCol() const
Definition Block.h:313

◆ BlockImpl_dense() [3/3]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::BlockImpl_dense ( XprType &  xpr,
Index  startRow,
Index  startCol,
Index  blockRows,
Index  blockCols 
)
inline

Dynamic-size constructor

215 m_blockRows(blockRows), m_blockCols(blockCols)
216 {}

Member Function Documentation

◆ coeff() [1/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC const CoeffReturnType Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::coeff ( Index  index) const
inline
257 {
258 return m_xpr.coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
259 m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
260 }
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T value()
Definition XprHelper.h:111

◆ coeff() [2/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CoeffReturnType Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::coeff ( Index  rowId,
Index  colId 
) const
inline
236 {
237 return m_xpr.coeff(rowId + m_startRow.value(), colId + m_startCol.value());
238 }

◆ coeffRef() [1/4]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Scalar & Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::coeffRef ( Index  index)
inline
242 {
244 return m_xpr.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
245 m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
246 }
#define EIGEN_STATIC_ASSERT_LVALUE(Derived)
Definition StaticAssert.h:199

References EIGEN_STATIC_ASSERT_LVALUE.

◆ coeffRef() [2/4]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC const Scalar & Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::coeffRef ( Index  index) const
inline
250 {
251 return m_xpr.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
252 m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
253 }

◆ coeffRef() [3/4]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Scalar & Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::coeffRef ( Index  rowId,
Index  colId 
)
inline
223 {
225 return m_xpr.coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
226 }

References EIGEN_STATIC_ASSERT_LVALUE.

◆ coeffRef() [4/4]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC const Scalar & Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::coeffRef ( Index  rowId,
Index  colId 
) const
inline
230 {
231 return m_xpr.derived().coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
232 }

◆ cols()

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Index Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::cols ( ) const
inline
219{ return m_blockCols.value(); }

◆ nestedExpression() [1/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC XprType & Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::nestedExpression ( )
inline
304{ return m_xpr; }

◆ nestedExpression() [2/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC const internal::remove_all< XprTypeNested >::type & Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::nestedExpression ( ) const
inline
299 {
300 return m_xpr;
301 }

◆ packet() [1/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
template<int LoadMode>
PacketScalar Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::packet ( Index  index) const
inline
276 {
277 return m_xpr.template packet<Unaligned>
278 (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
279 m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
280 }

◆ packet() [2/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
template<int LoadMode>
PacketScalar Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::packet ( Index  rowId,
Index  colId 
) const
inline
264 {
265 return m_xpr.template packet<Unaligned>(rowId + m_startRow.value(), colId + m_startCol.value());
266 }

◆ rows()

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC Index Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::rows ( ) const
inline
218{ return m_blockRows.value(); }

◆ startCol()

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC StorageIndex Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::startCol ( ) const
inline
314 {
315 return m_startCol.value();
316 }

◆ startRow()

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
EIGEN_DEVICE_FUNC StorageIndex Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::startRow ( ) const
inline
308 {
309 return m_startRow.value();
310 }

◆ writePacket() [1/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
template<int LoadMode>
void Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::writePacket ( Index  index,
const PacketScalar &  val 
)
inline
284 {
285 m_xpr.template writePacket<Unaligned>
286 (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
287 m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0), val);
288 }

◆ writePacket() [2/2]

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
template<int LoadMode>
void Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::writePacket ( Index  rowId,
Index  colId,
const PacketScalar &  val 
)
inline
270 {
271 m_xpr.template writePacket<Unaligned>(rowId + m_startRow.value(), colId + m_startCol.value(), val);
272 }

Member Data Documentation

◆ m_blockCols

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
const internal::variable_if_dynamic<StorageIndex, ColsAtCompileTime> Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::m_blockCols
protected

◆ m_blockRows

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
const internal::variable_if_dynamic<StorageIndex, RowsAtCompileTime> Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::m_blockRows
protected

◆ m_startCol

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
const internal::variable_if_dynamic<StorageIndex, (XprType::ColsAtCompileTime == 1 && BlockCols==1) ? 0 : Dynamic> Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::m_startCol
protected

◆ m_startRow

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
const internal::variable_if_dynamic<StorageIndex, (XprType::RowsAtCompileTime == 1 && BlockRows==1) ? 0 : Dynamic> Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::m_startRow
protected

◆ m_xpr

template<typename XprType , int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess>
XprTypeNested Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess >::m_xpr
protected

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