10 #ifndef EIGEN_SPARSE_CWISE_UNARY_OP_H 11 #define EIGEN_SPARSE_CWISE_UNARY_OP_H 15 template<
typename UnaryOp,
typename MatrixType>
22 class ReverseInnerIterator;
33 template<typename UnaryOp, typename MatrixType>
37 typedef typename CwiseUnaryOpImpl::Scalar
Scalar;
42 : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
46 { Base::operator++();
return *
this; }
53 typename CwiseUnaryOpImpl::Scalar& valueRef();
56 template<
typename UnaryOp,
typename MatrixType>
60 typedef typename CwiseUnaryOpImpl::Scalar
Scalar;
65 : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
69 { Base::operator--();
return *
this; }
76 typename CwiseUnaryOpImpl::Scalar& valueRef();
79 template<
typename ViewOp,
typename MatrixType>
86 class ReverseInnerIterator;
97 template<typename ViewOp, typename MatrixType>
101 typedef typename CwiseUnaryViewImpl::Scalar
Scalar;
106 : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
110 { Base::operator++();
return *
this; }
119 template<
typename ViewOp,
typename MatrixType>
123 typedef typename CwiseUnaryViewImpl::Scalar
Scalar;
128 : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
132 { Base::operator--();
return *
this; }
141 template<
typename Derived>
145 for (
Index j=0; j<outerSize(); ++j)
146 for (
typename Derived::InnerIterator i(derived(),j); i; ++i)
147 i.valueRef() *= other;
151 template<
typename Derived>
155 for (
Index j=0; j<outerSize(); ++j)
156 for (
typename Derived::InnerIterator i(derived(),j); i; ++i)
157 i.valueRef() /= other;
163 #endif // EIGEN_SPARSE_CWISE_UNARY_OP_H EIGEN_STRONG_INLINE ReverseInnerIterator & operator--()
EIGEN_STRONG_INLINE ReverseInnerIterator(const CwiseUnaryViewImpl &unaryOp, typename CwiseUnaryViewImpl::Index outer)
#define EIGEN_STRONG_INLINE
EIGEN_STRONG_INLINE CwiseUnaryOpImpl::Scalar value() const
internal::traits< Derived >::_MatrixTypeNested _MatrixTypeNested
CwiseUnaryViewImpl::Scalar Scalar
EIGEN_STRONG_INLINE InnerIterator & operator++()
EIGEN_STRONG_INLINE CwiseUnaryOpImpl::Scalar value() const
EIGEN_STRONG_INLINE ReverseInnerIterator(const CwiseUnaryOpImpl &unaryOp, typename CwiseUnaryOpImpl::Index outer)
iterative scaling algorithm to equilibrate rows and column norms in matrices
CwiseUnaryViewImpl< ViewOp, MatrixType, Sparse >::MatrixTypeReverseIterator Base
CwiseUnaryView< ViewOp, MatrixType > Derived
CwiseUnaryViewImpl::Scalar Scalar
Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector.
EIGEN_STRONG_INLINE InnerIterator(const CwiseUnaryViewImpl &unaryOp, typename CwiseUnaryViewImpl::Index outer)
#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
Base class of any sparse matrices or sparse expressions.
_MatrixTypeNested::InnerIterator MatrixTypeIterator
internal::traits< Derived >::Scalar Scalar
EIGEN_STRONG_INLINE InnerIterator & operator++()
CwiseUnaryOpImpl::Scalar Scalar
CwiseUnaryViewImpl< ViewOp, MatrixType, Sparse >::MatrixTypeIterator Base
CwiseUnaryOpImpl< UnaryOp, MatrixType, Sparse >::MatrixTypeIterator Base
_MatrixTypeNested::ReverseInnerIterator MatrixTypeReverseIterator
CwiseUnaryOpImpl::Scalar Scalar
_MatrixTypeNested::ReverseInnerIterator MatrixTypeReverseIterator
EIGEN_STRONG_INLINE CwiseUnaryViewImpl::Scalar & valueRef()
internal::traits< Derived >::Index Index
CwiseUnaryOp< UnaryOp, MatrixType > Derived
EIGEN_STRONG_INLINE CwiseUnaryViewImpl::Scalar value() const
An InnerIterator allows to loop over the element of a sparse (or dense) matrix or expression...
Derived & operator*=(const Scalar &other)
Derived & operator/=(const Scalar &other)
EIGEN_STRONG_INLINE CwiseUnaryViewImpl::Scalar & valueRef()
EIGEN_STRONG_INLINE InnerIterator(const CwiseUnaryOpImpl &unaryOp, typename CwiseUnaryOpImpl::Index outer)
Generic expression where a coefficient-wise unary operator is applied to an expression.
internal::traits< Derived >::_XprTypeNested _MatrixTypeNested
EIGEN_STRONG_INLINE CwiseUnaryViewImpl::Scalar value() const
EIGEN_STRONG_INLINE ReverseInnerIterator & operator--()
CwiseUnaryOpImpl< UnaryOp, MatrixType, Sparse >::MatrixTypeReverseIterator Base
_MatrixTypeNested::InnerIterator MatrixTypeIterator