10#ifndef EIGEN_COREITERATORS_H
11#define EIGEN_COREITERATORS_H
20template<
typename XprType,
typename EvaluatorKind>
32template<
typename XprType>
78template<
typename XprType>
79class inner_iterator_selector<
XprType, IndexBased>
82 typedef evaluator<XprType> EvaluatorType;
83 typedef typename traits<XprType>::Scalar
Scalar;
88 : m_eval(
eval), m_inner(0), m_outer(outerId), m_end(innerSize)
93 return (IsRowMajor) ? m_eval.coeff(m_outer, m_inner)
94 : m_eval.coeff(m_inner, m_outer);
100 inline Index row()
const {
return IsRowMajor ? m_outer : index(); }
101 inline Index col()
const {
return IsRowMajor ? index() : m_outer; }
106 const EvaluatorType& m_eval;
114template<
typename XprType>
115class inner_iterator_selector<
XprType, IteratorBased>
116 :
public evaluator<XprType>::InnerIterator
119 typedef typename evaluator<XprType>::InnerIterator Base;
120 typedef evaluator<XprType> EvaluatorType;
124 : Base(
eval, outerId)
int i
Definition BiCGSTAB_step_by_step.cpp:9
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
SCALAR Scalar
Definition bench_gemm.cpp:46
An InnerIterator allows to loop over the element of any matrix expression.
Definition CoreIterators.h:34
EIGEN_STRONG_INLINE Index col() const
Definition CoreIterators.h:61
internal::evaluator< XprType > EvaluatorType
Definition CoreIterators.h:37
EIGEN_STRONG_INLINE Index row() const
Definition CoreIterators.h:59
EvaluatorType m_eval
Definition CoreIterators.h:66
IteratorType m_iter
Definition CoreIterators.h:67
EIGEN_STRONG_INLINE Scalar value() const
Definition CoreIterators.h:46
internal::inner_iterator_selector< XprType, typename internal::evaluator_traits< XprType >::Kind > IteratorType
Definition CoreIterators.h:36
InnerIterator(const XprType &xpr, const Index &outerId)
Definition CoreIterators.h:41
EIGEN_STRONG_INLINE Index index() const
Definition CoreIterators.h:57
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition CoreIterators.h:50
internal::traits< XprType >::Scalar Scalar
Definition CoreIterators.h:38
EIGEN_STRONG_INLINE InnerIterator operator+(Index i)
Definition CoreIterators.h:52
EIGEN_STRONG_INLINE InnerIterator & operator+=(Index i)
Definition CoreIterators.h:51
Definition CoreIterators.h:21
const unsigned int RowMajorBit
Definition Constants.h:66
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 operator++(bfloat16 &a)
Definition BFloat16.h:200
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
Definition BandTriangularSolver.h:13
CwiseBinaryOp< internal::scalar_sum_op< double, double >, const CpyMatrixXd, const CpyMatrixXd > XprType
Definition nestbyvalue.cpp:15
internal::nested_eval< T, 1 >::type eval(const T &xpr)
Definition sparse_permutations.cpp:38
Definition EigenBase.h:30
Definition ForwardDeclarations.h:17