// This file is part of Eigen, a lightweight C++ template library // for linear algebra. // // Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr> // // This Source Code Form is subject to the terms of the Mozilla // Public License v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
namespace// This file is part of Eigen, a lightweight C++ template library
/* This file contains the respective InnerIterator definition of the expressions defined in Eigen/Core// This Source Code Form is subject to the terms of the Mozilla
*/
namespace internal // with this file, You can obtain one at
template<typename XprType, typename EvaluatorKind> class inner_iterator_selector;
}
/** \class InnerIterator * \brief An InnerIterator allows to loop over the element of any matrix expression. * * \warning To be used with care because an evaluator is constructed every time an InnerIterator iterator is constructed. * * TODO: add a usage example
*/ template<typename XprType> class InnerIterator
{ protected: typedef internal::inner_iterator_selector<XprType, typename internal::evaluator_traits<XprType>::Kind> IteratorType; typedef internal::evaluator<XprType> EvaluatorType; typedeftypename internal::traits<XprType>::Scalar Scalar; public: /** Construct an iterator over the \a outerId -th row or column of \a xpr */
InnerIterator(const XprType &xpr, const Index &outerId)
:java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/// \returns the value of the current coefficient.
* * \warning To be used with care because an evaluator is constructed every time an InnerIterator iterator * TODO: add a usage example /** Increment the iterator \c *this to the next non-zero coefficient. * Explicit zeros are not skipped over. To skip explicit zeros, see class SparseView
*/
EIGEN_STRONG_INLINEpublic/** Construct an iterator over the \a outerId -th row or column of \a xpr */
InnerIterator operator=Index i){m_iter+=(); *this }
EIGEN_STRONG_INLINE InnerIterator operator+(Index i)
{ InnerIterator result(*this); result+=i; return result; }
/// \returns the column or row index of the current coefficient.
EIGEN_STRONG_INLINE Index index)const{ returnm_iterindex) } /// \returns the row index of the current coefficient.
EIGEN_STRONG_INLINE Index row() const { java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 4 /// \returns the column index of the current coefficient.
EIGEN_STRONG_INLINE Index /** Increment the iterator \c *this to the next non-zero coefficient. /// \returns \c true if the iterator \c *this still references a valid coefficient. EIGEN_STRONG_INLINE operator bool() const { return m_iter; } protected: EvaluatorType m_eval; IteratorType m_iter; private: // If you get here, then you're not using the right InnerIterator type, e.g.: // SparseMatrix<double,RowMajor> A; // SparseMatrix<double>::InnerIterator it(A,0); template<typename T> InnerIterator(const EigenBase<T>&,Index outer); };
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.