mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-08 06:01:48 +08:00
Clean up SparseCore module regarding ReverseInnerIterator
(grafted from 27873008d431a307bed9c200a12622a361af4d14 )
This commit is contained in:
parent
32b8da66e3
commit
aed1d6597f
@ -432,7 +432,6 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
// friend class internal::GenericSparseBlockInnerIteratorImpl<XprType,BlockRows,BlockCols,InnerPanel>;
|
// friend class internal::GenericSparseBlockInnerIteratorImpl<XprType,BlockRows,BlockCols,InnerPanel>;
|
||||||
friend class ReverseInnerIterator;
|
|
||||||
friend struct internal::unary_evaluator<Block<XprType,BlockRows,BlockCols,InnerPanel>, internal::IteratorBased, Scalar >;
|
friend struct internal::unary_evaluator<Block<XprType,BlockRows,BlockCols,InnerPanel>, internal::IteratorBased, Scalar >;
|
||||||
|
|
||||||
Index nonZeros() const { return Dynamic; }
|
Index nonZeros() const { return Dynamic; }
|
||||||
@ -468,8 +467,6 @@ struct unary_evaluator<Block<ArgType,BlockRows,BlockCols,InnerPanel>, IteratorBa
|
|||||||
typedef typename XprType::StorageIndex StorageIndex;
|
typedef typename XprType::StorageIndex StorageIndex;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsRowMajor = XprType::IsRowMajor,
|
IsRowMajor = XprType::IsRowMajor,
|
||||||
|
|
||||||
|
@ -273,7 +273,6 @@ struct evaluator<SparseCompressedBase<Derived> >
|
|||||||
{
|
{
|
||||||
typedef typename Derived::Scalar Scalar;
|
typedef typename Derived::Scalar Scalar;
|
||||||
typedef typename Derived::InnerIterator InnerIterator;
|
typedef typename Derived::InnerIterator InnerIterator;
|
||||||
typedef typename Derived::ReverseInnerIterator ReverseInnerIterator;
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = NumTraits<Scalar>::ReadCost,
|
CoeffReadCost = NumTraits<Scalar>::ReadCost,
|
||||||
|
@ -68,7 +68,6 @@ protected:
|
|||||||
typedef typename XprType::StorageIndex StorageIndex;
|
typedef typename XprType::StorageIndex StorageIndex;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
class InnerIterator
|
class InnerIterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -161,7 +160,6 @@ protected:
|
|||||||
typedef typename XprType::StorageIndex StorageIndex;
|
typedef typename XprType::StorageIndex StorageIndex;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
class InnerIterator
|
class InnerIterator
|
||||||
{
|
{
|
||||||
enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit };
|
enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit };
|
||||||
@ -249,7 +247,6 @@ protected:
|
|||||||
typedef typename XprType::StorageIndex StorageIndex;
|
typedef typename XprType::StorageIndex StorageIndex;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
class InnerIterator
|
class InnerIterator
|
||||||
{
|
{
|
||||||
enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit };
|
enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit };
|
||||||
@ -402,7 +399,6 @@ protected:
|
|||||||
typedef typename traits<XprType>::Scalar Scalar;
|
typedef typename traits<XprType>::Scalar Scalar;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
class InnerIterator
|
class InnerIterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -487,7 +483,6 @@ protected:
|
|||||||
typedef typename traits<XprType>::Scalar Scalar;
|
typedef typename traits<XprType>::Scalar Scalar;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
class InnerIterator
|
class InnerIterator
|
||||||
{
|
{
|
||||||
enum { IsRowMajor = (int(RhsArg::Flags)&RowMajorBit)==RowMajorBit };
|
enum { IsRowMajor = (int(RhsArg::Flags)&RowMajorBit)==RowMajorBit };
|
||||||
@ -561,7 +556,6 @@ protected:
|
|||||||
typedef typename traits<XprType>::Scalar Scalar;
|
typedef typename traits<XprType>::Scalar Scalar;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ReverseInnerIterator;
|
|
||||||
class InnerIterator
|
class InnerIterator
|
||||||
{
|
{
|
||||||
enum { IsRowMajor = (int(LhsArg::Flags)&RowMajorBit)==RowMajorBit };
|
enum { IsRowMajor = (int(LhsArg::Flags)&RowMajorBit)==RowMajorBit };
|
||||||
|
@ -22,7 +22,6 @@ struct unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>
|
|||||||
typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
|
typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
|
||||||
|
|
||||||
class InnerIterator;
|
class InnerIterator;
|
||||||
class ReverseInnerIterator;
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
|
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
|
||||||
@ -41,7 +40,6 @@ struct unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
||||||
// typedef typename evaluator<ArgType>::ReverseInnerIterator EvalReverseIterator;
|
|
||||||
|
|
||||||
const UnaryOp m_functor;
|
const UnaryOp m_functor;
|
||||||
evaluator<ArgType> m_argImpl;
|
evaluator<ArgType> m_argImpl;
|
||||||
@ -70,33 +68,6 @@ class unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::InnerIterat
|
|||||||
Scalar& valueRef();
|
Scalar& valueRef();
|
||||||
};
|
};
|
||||||
|
|
||||||
// template<typename UnaryOp, typename ArgType>
|
|
||||||
// class unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::ReverseInnerIterator
|
|
||||||
// : public unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::EvalReverseIterator
|
|
||||||
// {
|
|
||||||
// typedef typename XprType::Scalar Scalar;
|
|
||||||
// typedef typename unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::EvalReverseIterator Base;
|
|
||||||
// public:
|
|
||||||
//
|
|
||||||
// EIGEN_STRONG_INLINE ReverseInnerIterator(const XprType& unaryOp, typename XprType::Index outer)
|
|
||||||
// : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
|
|
||||||
// {}
|
|
||||||
//
|
|
||||||
// EIGEN_STRONG_INLINE ReverseInnerIterator& operator--()
|
|
||||||
// { Base::operator--(); return *this; }
|
|
||||||
//
|
|
||||||
// EIGEN_STRONG_INLINE Scalar value() const { return m_functor(Base::value()); }
|
|
||||||
//
|
|
||||||
// protected:
|
|
||||||
// const UnaryOp m_functor;
|
|
||||||
// private:
|
|
||||||
// Scalar& valueRef();
|
|
||||||
// };
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<typename ViewOp, typename ArgType>
|
template<typename ViewOp, typename ArgType>
|
||||||
struct unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>
|
struct unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>
|
||||||
: public evaluator_base<CwiseUnaryView<ViewOp,ArgType> >
|
: public evaluator_base<CwiseUnaryView<ViewOp,ArgType> >
|
||||||
@ -105,7 +76,6 @@ struct unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>
|
|||||||
typedef CwiseUnaryView<ViewOp, ArgType> XprType;
|
typedef CwiseUnaryView<ViewOp, ArgType> XprType;
|
||||||
|
|
||||||
class InnerIterator;
|
class InnerIterator;
|
||||||
class ReverseInnerIterator;
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<ViewOp>::Cost,
|
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<ViewOp>::Cost,
|
||||||
@ -120,7 +90,6 @@ struct unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
||||||
// typedef typename evaluator<ArgType>::ReverseInnerIterator EvalReverseIterator;
|
|
||||||
|
|
||||||
const ViewOp m_functor;
|
const ViewOp m_functor;
|
||||||
evaluator<ArgType> m_argImpl;
|
evaluator<ArgType> m_argImpl;
|
||||||
@ -148,29 +117,6 @@ class unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::InnerItera
|
|||||||
const ViewOp m_functor;
|
const ViewOp m_functor;
|
||||||
};
|
};
|
||||||
|
|
||||||
// template<typename ViewOp, typename ArgType>
|
|
||||||
// class unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::ReverseInnerIterator
|
|
||||||
// : public unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::EvalReverseIterator
|
|
||||||
// {
|
|
||||||
// typedef typename XprType::Scalar Scalar;
|
|
||||||
// typedef typename unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::EvalReverseIterator Base;
|
|
||||||
// public:
|
|
||||||
//
|
|
||||||
// EIGEN_STRONG_INLINE ReverseInnerIterator(const XprType& unaryOp, typename XprType::Index outer)
|
|
||||||
// : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
|
|
||||||
// {}
|
|
||||||
//
|
|
||||||
// EIGEN_STRONG_INLINE ReverseInnerIterator& operator--()
|
|
||||||
// { Base::operator--(); return *this; }
|
|
||||||
//
|
|
||||||
// EIGEN_STRONG_INLINE Scalar value() const { return m_functor(Base::value()); }
|
|
||||||
// EIGEN_STRONG_INLINE Scalar& valueRef() { return m_functor(Base::valueRef()); }
|
|
||||||
//
|
|
||||||
// protected:
|
|
||||||
// const ViewOp m_functor;
|
|
||||||
// };
|
|
||||||
|
|
||||||
|
|
||||||
} // end namespace internal
|
} // end namespace internal
|
||||||
|
|
||||||
template<typename Derived>
|
template<typename Derived>
|
||||||
|
@ -56,7 +56,6 @@ struct unary_evaluator<Transpose<ArgType>, IteratorBased>
|
|||||||
: public evaluator_base<Transpose<ArgType> >
|
: public evaluator_base<Transpose<ArgType> >
|
||||||
{
|
{
|
||||||
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
||||||
typedef typename evaluator<ArgType>::ReverseInnerIterator EvalReverseIterator;
|
|
||||||
public:
|
public:
|
||||||
typedef Transpose<ArgType> XprType;
|
typedef Transpose<ArgType> XprType;
|
||||||
|
|
||||||
@ -75,17 +74,6 @@ struct unary_evaluator<Transpose<ArgType>, IteratorBased>
|
|||||||
Index col() const { return EvalIterator::row(); }
|
Index col() const { return EvalIterator::row(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
class ReverseInnerIterator : public EvalReverseIterator
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EIGEN_STRONG_INLINE ReverseInnerIterator(const unary_evaluator& unaryOp, Index outer)
|
|
||||||
: EvalReverseIterator(unaryOp.m_argImpl,outer)
|
|
||||||
{}
|
|
||||||
|
|
||||||
Index row() const { return EvalReverseIterator::col(); }
|
|
||||||
Index col() const { return EvalReverseIterator::row(); }
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
|
CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
|
||||||
Flags = XprType::Flags
|
Flags = XprType::Flags
|
||||||
|
Loading…
x
Reference in New Issue
Block a user