MOAB  4.9.3pre
Eigen::internal::BlockImpl_dense< XprType, BlockRows, BlockCols, InnerPanel, HasDirectAccess > Class Template Reference

#include <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 >:

List of all members.

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:Dynamic
m_startRow
const
internal::variable_if_dynamic
< StorageIndex,(XprType::ColsAtCompileTime==1
&&BlockCols==1)?0:Dynamic
m_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 >

Internal implementation of dense Blocks in the general case.

Definition at line 172 of file Block.h.


Member Typedef Documentation

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
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]

Definition at line 175 of file Block.h.

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]

Definition at line 176 of file Block.h.


Constructor & Destructor Documentation

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

Definition at line 188 of file Block.h.

      : m_xpr(xpr),
        // It is a row if and only if BlockRows==1 and BlockCols==XprType::ColsAtCompileTime,
        // and it is a column if and only if BlockRows==XprType::RowsAtCompileTime and BlockCols==1,
        // all other cases are invalid.
        // The case a 1x1 matrix seems ambiguous, but the result is the same anyway.
        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
        m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
        m_blockCols(BlockCols==1 ? 1 : xpr.cols())
    {}
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

Definition at line 203 of file Block.h.

      : m_xpr(xpr), m_startRow(startRow), m_startCol(startCol),
                    m_blockRows(BlockRows), m_blockCols(BlockCols)
    {}
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

Definition at line 211 of file Block.h.

      : m_xpr(xpr), m_startRow(startRow), m_startCol(startCol),
                    m_blockRows(blockRows), m_blockCols(blockCols)
    {}

Member Function Documentation

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]

Definition at line 235 of file Block.h.

    {
      return m_xpr.coeff(rowId + m_startRow.value(), colId + m_startCol.value());
    }
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]

Definition at line 256 of file Block.h.

    {
      return m_xpr.coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
                         m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
    }
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]

Definition at line 222 of file Block.h.

    {
      EIGEN_STATIC_ASSERT_LVALUE(XprType)
      return m_xpr.coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
    }
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]

Definition at line 229 of file Block.h.

    {
      return m_xpr.derived().coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
    }
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]

Definition at line 241 of file Block.h.

    {
      EIGEN_STATIC_ASSERT_LVALUE(XprType)
      return m_xpr.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
                            m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
    }
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]

Definition at line 249 of file Block.h.

    {
      return m_xpr.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
                            m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
    }
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]

Definition at line 219 of file Block.h.

{ return m_blockCols.value(); }
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]

Definition at line 298 of file Block.h.

    { 
      return m_xpr; 
    }
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]

Definition at line 304 of file Block.h.

{ return m_xpr; }
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]

Definition at line 263 of file Block.h.

    {
      return m_xpr.template packet<Unaligned>(rowId + m_startRow.value(), colId + m_startCol.value());
    }
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]

Definition at line 275 of file Block.h.

    {
      return m_xpr.template packet<Unaligned>
              (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
               m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
    }
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]

Definition at line 218 of file Block.h.

{ return m_blockRows.value(); }
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]

Definition at line 313 of file Block.h.

    { 
      return m_startCol.value(); 
    }
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]

Definition at line 307 of file Block.h.

    { 
      return m_startRow.value(); 
    }
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]

Definition at line 269 of file Block.h.

    {
      m_xpr.template writePacket<Unaligned>(rowId + m_startRow.value(), colId + m_startCol.value(), val);
    }
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]

Definition at line 283 of file Block.h.

    {
      m_xpr.template writePacket<Unaligned>
         (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
          m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0), val);
    }

Member Data Documentation

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]

Definition at line 324 of file Block.h.

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]

Definition at line 323 of file Block.h.

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]

Definition at line 322 of file Block.h.

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]

Definition at line 321 of file Block.h.

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

Definition at line 320 of file Block.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines