MOAB  4.9.3pre
Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors > Class Template Reference

Base class providing read-only coefficient access to matrices and arrays. More...

#include <DenseCoeffsBase.h>

Inheritance diagram for Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >:
Collaboration diagram for Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >:

List of all members.

Public Types

typedef internal::traits
< Derived >::StorageKind 
StorageKind
typedef internal::traits
< Derived >::Scalar 
Scalar
typedef
internal::packet_traits
< Scalar >::type 
PacketScalar
typedef internal::conditional
< bool(internal::traits
< Derived >::Flags &LvalueBit),
const Scalar &, typename
internal::conditional
< internal::is_arithmetic
< Scalar >::value, Scalar,
const Scalar >::type >::type 
CoeffReturnType
typedef
internal::add_const_on_value_type_if_arithmetic
< typename
internal::packet_traits
< Scalar >::type >::type 
PacketReturnType
typedef EigenBase< Derived > Base

Public Member Functions

EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE Index 
rowIndexByOuterInner (Index outer, Index inner) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE Index 
colIndexByOuterInner (Index outer, Index inner) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
coeff (Index row, Index col) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
coeffByOuterInner (Index outer, Index inner) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
operator() (Index row, Index col) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
coeff (Index index) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
operator[] (Index index) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
operator() (Index index) const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
x () const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
y () const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
z () const
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE
CoeffReturnType 
w () const
template<int LoadMode>
EIGEN_STRONG_INLINE
PacketReturnType 
packet (Index row, Index col) const
template<int LoadMode>
EIGEN_STRONG_INLINE
PacketReturnType 
packetByOuterInner (Index outer, Index inner) const
template<int LoadMode>
EIGEN_STRONG_INLINE
PacketReturnType 
packet (Index index) const

Protected Member Functions

void coeffRef ()
void coeffRefByOuterInner ()
void writePacket ()
void writePacketByOuterInner ()
void copyCoeff ()
void copyCoeffByOuterInner ()
void copyPacket ()
void copyPacketByOuterInner ()
void stride ()
void innerStride ()
void outerStride ()
void rowStride ()
void colStride ()

Detailed Description

template<typename Derived>
class Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >

Base class providing read-only coefficient access to matrices and arrays.

Template Parameters:
DerivedType of the derived class
ReadOnlyAccessorsConstant indicating read-only access

This class defines the operator() const function and friends, which can be used to read specific entries of a matrix or array.

See also:
DenseCoeffsBase<Derived, WriteAccessors>, DenseCoeffsBase<Derived, DirectAccessors>, TopicClassHierarchy

Definition at line 34 of file DenseCoeffsBase.h.


Member Typedef Documentation

template<typename Derived >
typedef EigenBase<Derived> Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::Base
template<typename Derived >
typedef internal::conditional<bool(internal::traits<Derived>::Flags&LvalueBit), const Scalar&, typename internal::conditional<internal::is_arithmetic<Scalar>::value, Scalar, const Scalar>::type >::type Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::CoeffReturnType

Definition at line 51 of file DenseCoeffsBase.h.

template<typename Derived >
typedef internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits<Scalar>::type >::type Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::PacketReturnType

Definition at line 55 of file DenseCoeffsBase.h.

template<typename Derived >
typedef internal::packet_traits<Scalar>::type Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::PacketScalar

Reimplemented in Eigen::DenseCoeffsBase< Derived, WriteAccessors >.

Definition at line 39 of file DenseCoeffsBase.h.

template<typename Derived >
typedef internal::traits<Derived>::Scalar Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::Scalar
template<typename Derived >
typedef internal::traits<Derived>::StorageKind Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::StorageKind

Reimplemented from Eigen::EigenBase< Derived >.

Reimplemented in Eigen::DenseCoeffsBase< Derived, WriteAccessors >.

Definition at line 37 of file DenseCoeffsBase.h.


Member Function Documentation

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::coeff ( Index  row,
Index  col 
) const [inline]

Short version: don't use this function, use operator()(Index,Index) const instead.

Long version: this function is similar to operator()(Index,Index) const , but without the assertion. Use this for limiting the performance cost of debugging code when doing repeated coefficient access. Only use this when it is guaranteed that the parameters row and col are in range.

If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this function equivalent to operator()(Index,Index) const .

See also:
operator()(Index,Index) const, coeffRef(Index,Index), coeff(Index) const

Definition at line 96 of file DenseCoeffsBase.h.

    {
      eigen_internal_assert(row >= 0 && row < rows()
                         && col >= 0 && col < cols());
      return internal::evaluator<Derived>(derived()).coeff(row,col);
    }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::coeff ( Index  index) const [inline]

Short version: don't use this function, use operator[](Index) const instead.

Long version: this function is similar to operator[](Index) const , but without the assertion. Use this for limiting the performance cost of debugging code when doing repeated coefficient access. Only use this when it is guaranteed that the parameter index is in range.

If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this function equivalent to operator[](Index) const .

See also:
operator[](Index) const, coeffRef(Index), coeff(Index,Index) const

Definition at line 139 of file DenseCoeffsBase.h.

    {
      EIGEN_STATIC_ASSERT(internal::evaluator<Derived>::Flags & LinearAccessBit,
                          THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
      eigen_internal_assert(index >= 0 && index < size());
      return internal::evaluator<Derived>(derived()).coeff(index);
    }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::coeffByOuterInner ( Index  outer,
Index  inner 
) const [inline]

Definition at line 104 of file DenseCoeffsBase.h.

    {
      return coeff(rowIndexByOuterInner(outer, inner),
                   colIndexByOuterInner(outer, inner));
    }
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::coeffRef ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::coeffRefByOuterInner ( ) [protected]
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::colIndexByOuterInner ( Index  outer,
Index  inner 
) const [inline]

Definition at line 73 of file DenseCoeffsBase.h.

    {
      return int(Derived::ColsAtCompileTime) == 1 ? 0
          : int(Derived::RowsAtCompileTime) == 1 ? inner
          : int(Derived::Flags)&RowMajorBit ? inner
          : outer;
    }
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::colStride ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::copyCoeff ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::copyCoeffByOuterInner ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::copyPacket ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::copyPacketByOuterInner ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::innerStride ( ) [protected]
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::operator() ( Index  row,
Index  col 
) const [inline]
Returns:
the coefficient at given the given row and column.
See also:
operator()(Index,Index), operator[](Index)

Definition at line 115 of file DenseCoeffsBase.h.

    {
      eigen_assert(row >= 0 && row < rows()
          && col >= 0 && col < cols());
      return coeff(row, col);
    }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::operator() ( Index  index) const [inline]
Returns:
the coefficient at given index.

This is synonymous to operator[](Index) const.

This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.

See also:
operator[](Index), operator()(Index,Index) const, x() const, y() const, z() const, w() const

Definition at line 178 of file DenseCoeffsBase.h.

    {
      eigen_assert(index >= 0 && index < size());
      return coeff(index);
    }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::operator[] ( Index  index) const [inline]
Returns:
the coefficient at given index.

This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.

See also:
operator[](Index), operator()(Index,Index) const, x() const, y() const, z() const, w() const

Definition at line 158 of file DenseCoeffsBase.h.

    {
      EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
                          THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
      eigen_assert(index >= 0 && index < size());
      return coeff(index);
    }
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::outerStride ( ) [protected]
template<typename Derived >
template<int LoadMode>
EIGEN_STRONG_INLINE PacketReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::packet ( Index  row,
Index  col 
) const [inline]
Returns:
the packet of coefficients starting at the given row and column. It is your responsibility to ensure that a packet really starts there. This method is only available on expressions having the PacketAccessBit.

The LoadMode parameter may have the value Aligned or Unaligned. Its effect is to select the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets starting at an address which is a multiple of the packet size.

Definition at line 231 of file DenseCoeffsBase.h.

    {
      typedef typename internal::packet_traits<Scalar>::type DefaultPacketType;
      eigen_internal_assert(row >= 0 && row < rows() && col >= 0 && col < cols());
      return internal::evaluator<Derived>(derived()).template packet<LoadMode,DefaultPacketType>(row,col);
    }
template<typename Derived >
template<int LoadMode>
EIGEN_STRONG_INLINE PacketReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::packet ( Index  index) const [inline]
Returns:
the packet of coefficients starting at the given index. It is your responsibility to ensure that a packet really starts there. This method is only available on expressions having the PacketAccessBit and the LinearAccessBit.

The LoadMode parameter may have the value Aligned or Unaligned. Its effect is to select the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets starting at an address which is a multiple of the packet size.

Definition at line 258 of file DenseCoeffsBase.h.

    {
      EIGEN_STATIC_ASSERT(internal::evaluator<Derived>::Flags & LinearAccessBit,
                          THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
      typedef typename internal::packet_traits<Scalar>::type DefaultPacketType;
      eigen_internal_assert(index >= 0 && index < size());
      return internal::evaluator<Derived>(derived()).template packet<LoadMode,DefaultPacketType>(index);
    }
template<typename Derived >
template<int LoadMode>
EIGEN_STRONG_INLINE PacketReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::packetByOuterInner ( Index  outer,
Index  inner 
) const [inline]

Definition at line 241 of file DenseCoeffsBase.h.

    {
      return packet<LoadMode>(rowIndexByOuterInner(outer, inner),
                              colIndexByOuterInner(outer, inner));
    }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::rowIndexByOuterInner ( Index  outer,
Index  inner 
) const [inline]

Definition at line 64 of file DenseCoeffsBase.h.

    {
      return int(Derived::RowsAtCompileTime) == 1 ? 0
          : int(Derived::ColsAtCompileTime) == 1 ? inner
          : int(Derived::Flags)&RowMajorBit ? outer
          : inner;
    }
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::rowStride ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::stride ( ) [protected]
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::w ( ) const [inline]

equivalent to operator[](3).

Definition at line 214 of file DenseCoeffsBase.h.

    {
      EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=4, OUT_OF_RANGE_ACCESS);
      return (*this)[3];
    }
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::writePacket ( ) [protected]
template<typename Derived >
void Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::writePacketByOuterInner ( ) [protected]
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::x ( ) const [inline]

equivalent to operator[](0).

Definition at line 188 of file DenseCoeffsBase.h.

{ return (*this)[0]; }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::y ( ) const [inline]

equivalent to operator[](1).

Definition at line 194 of file DenseCoeffsBase.h.

    {
      EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=2, OUT_OF_RANGE_ACCESS);
      return (*this)[1];
    }
template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >::z ( ) const [inline]

equivalent to operator[](2).

Definition at line 204 of file DenseCoeffsBase.h.

    {
      EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=3, OUT_OF_RANGE_ACCESS);
      return (*this)[2];
    }

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