Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef EIGEN_SPARSETRANSPOSE_H
00011 #define EIGEN_SPARSETRANSPOSE_H
00012
00013 namespace Eigen {
00014
00015 template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>
00016 : public SparseMatrixBase<Transpose<MatrixType> >
00017 {
00018 typedef typename internal::remove_all<typename MatrixType::Nested>::type _MatrixTypeNested;
00019 public:
00020
00021 EIGEN_SPARSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
00022
00023 class InnerIterator;
00024 class ReverseInnerIterator;
00025
00026 inline Index nonZeros() const { return derived().nestedExpression().nonZeros(); }
00027 };
00028
00029
00030
00031
00032
00033 template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::InnerIterator
00034 : public _MatrixTypeNested::InnerIterator
00035 {
00036 typedef typename _MatrixTypeNested::InnerIterator Base;
00037 public:
00038
00039 EIGEN_STRONG_INLINE InnerIterator(const TransposeImpl& trans, typename TransposeImpl<MatrixType,Sparse>::Index outer)
00040 : Base(trans.derived().nestedExpression(), outer)
00041 {}
00042 inline typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
00043 inline typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
00044 };
00045
00046 template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::ReverseInnerIterator
00047 : public _MatrixTypeNested::ReverseInnerIterator
00048 {
00049 typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
00050 public:
00051
00052 EIGEN_STRONG_INLINE ReverseInnerIterator(const TransposeImpl& xpr, typename TransposeImpl<MatrixType,Sparse>::Index outer)
00053 : Base(xpr.derived().nestedExpression(), outer)
00054 {}
00055 inline typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
00056 inline typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
00057 };
00058
00059 }
00060
00061 #endif // EIGEN_SPARSETRANSPOSE_H