diff options
Diffstat (limited to 'Eigen/src/Sparse/MappedSparseMatrix.h')
-rw-r--r-- | Eigen/src/Sparse/MappedSparseMatrix.h | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/Eigen/src/Sparse/MappedSparseMatrix.h b/Eigen/src/Sparse/MappedSparseMatrix.h index 43ac6b308..07233ac67 100644 --- a/Eigen/src/Sparse/MappedSparseMatrix.h +++ b/Eigen/src/Sparse/MappedSparseMatrix.h @@ -48,40 +48,40 @@ class MappedSparseMatrix protected: enum { IsRowMajor = Base::IsRowMajor }; - int m_outerSize; - int m_innerSize; - int m_nnz; - int* m_outerIndex; - int* m_innerIndices; + Index m_outerSize; + Index m_innerSize; + Index m_nnz; + Index* m_outerIndex; + Index* m_innerIndices; Scalar* m_values; public: - inline int rows() const { return IsRowMajor ? m_outerSize : m_innerSize; } - inline int cols() const { return IsRowMajor ? m_innerSize : m_outerSize; } - inline int innerSize() const { return m_innerSize; } - inline int outerSize() const { return m_outerSize; } - inline int innerNonZeros(int j) const { return m_outerIndex[j+1]-m_outerIndex[j]; } + inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; } + inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; } + inline Index innerSize() const { return m_innerSize; } + inline Index outerSize() const { return m_outerSize; } + inline Index innerNonZeros(Index j) const { return m_outerIndex[j+1]-m_outerIndex[j]; } //---------------------------------------- // direct access interface inline const Scalar* _valuePtr() const { return m_values; } inline Scalar* _valuePtr() { return m_values; } - inline const int* _innerIndexPtr() const { return m_innerIndices; } - inline int* _innerIndexPtr() { return m_innerIndices; } + inline const Index* _innerIndexPtr() const { return m_innerIndices; } + inline Index* _innerIndexPtr() { return m_innerIndices; } - inline const int* _outerIndexPtr() const { return m_outerIndex; } - inline int* _outerIndexPtr() { return m_outerIndex; } + inline const Index* _outerIndexPtr() const { return m_outerIndex; } + inline Index* _outerIndexPtr() { return m_outerIndex; } //---------------------------------------- - inline Scalar coeff(int row, int col) const + inline Scalar coeff(Index row, Index col) const { - const int outer = IsRowMajor ? row : col; - const int inner = IsRowMajor ? col : row; + const Index outer = IsRowMajor ? row : col; + const Index inner = IsRowMajor ? col : row; - int start = m_outerIndex[outer]; - int end = m_outerIndex[outer+1]; + Index start = m_outerIndex[outer]; + Index end = m_outerIndex[outer+1]; if (start==end) return Scalar(0); else if (end>0 && inner==m_innerIndices[end-1]) @@ -89,22 +89,22 @@ class MappedSparseMatrix // ^^ optimization: let's first check if it is the last coefficient // (very common in high level algorithms) - const int* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner); - const int id = r-&m_innerIndices[0]; + const Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner); + const Index id = r-&m_innerIndices[0]; return ((*r==inner) && (id<end)) ? m_values[id] : Scalar(0); } - inline Scalar& coeffRef(int row, int col) + inline Scalar& coeffRef(Index row, Index col) { - const int outer = IsRowMajor ? row : col; - const int inner = IsRowMajor ? col : row; + const Index outer = IsRowMajor ? row : col; + const Index inner = IsRowMajor ? col : row; - int start = m_outerIndex[outer]; - int end = m_outerIndex[outer+1]; + Index start = m_outerIndex[outer]; + Index end = m_outerIndex[outer+1]; ei_assert(end>=start && "you probably called coeffRef on a non finalized matrix"); ei_assert(end>start && "coeffRef cannot be called on a zero coefficient"); - int* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end],inner); - const int id = r-&m_innerIndices[0]; + Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end],inner); + const Index id = r-&m_innerIndices[0]; ei_assert((*r==inner) && (id<end) && "coeffRef cannot be called on a zero coefficient"); return m_values[id]; } @@ -112,9 +112,9 @@ class MappedSparseMatrix class InnerIterator; /** \returns the number of non zero coefficients */ - inline int nonZeros() const { return m_nnz; } + inline Index nonZeros() const { return m_nnz; } - inline MappedSparseMatrix(int rows, int cols, int nnz, int* outerIndexPtr, int* innerIndexPtr, Scalar* valuePtr) + inline MappedSparseMatrix(Index rows, Index cols, Index nnz, Index* outerIndexPtr, Index* innerIndexPtr, Scalar* valuePtr) : m_outerSize(IsRowMajor?rows:cols), m_innerSize(IsRowMajor?cols:rows), m_nnz(nnz), m_outerIndex(outerIndexPtr), m_innerIndices(innerIndexPtr), m_values(valuePtr) {} @@ -139,7 +139,7 @@ template<typename Scalar, int _Flags> class MappedSparseMatrix<Scalar,_Flags>::InnerIterator { public: - InnerIterator(const MappedSparseMatrix& mat, int outer) + InnerIterator(const MappedSparseMatrix& mat, Index outer) : m_matrix(mat), m_outer(outer), m_id(mat._outerIndexPtr()[outer]), @@ -148,7 +148,7 @@ class MappedSparseMatrix<Scalar,_Flags>::InnerIterator {} template<unsigned int Added, unsigned int Removed> - InnerIterator(const Flagged<MappedSparseMatrix,Added,Removed>& mat, int outer) + InnerIterator(const Flagged<MappedSparseMatrix,Added,Removed>& mat, Index outer) : m_matrix(mat._expression()), m_id(m_matrix._outerIndexPtr()[outer]), m_start(m_id), m_end(m_matrix._outerIndexPtr()[outer+1]) {} @@ -158,18 +158,18 @@ class MappedSparseMatrix<Scalar,_Flags>::InnerIterator inline Scalar value() const { return m_matrix._valuePtr()[m_id]; } inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix._valuePtr()[m_id]); } - inline int index() const { return m_matrix._innerIndexPtr()[m_id]; } - inline int row() const { return IsRowMajor ? m_outer : index(); } - inline int col() const { return IsRowMajor ? index() : m_outer; } + inline Index index() const { return m_matrix._innerIndexPtr()[m_id]; } + inline Index row() const { return IsRowMajor ? m_outer : index(); } + inline Index col() const { return IsRowMajor ? index() : m_outer; } inline operator bool() const { return (m_id < m_end) && (m_id>=m_start); } protected: const MappedSparseMatrix& m_matrix; - const int m_outer; - int m_id; - const int m_start; - const int m_end; + const Index m_outer; + Index m_id; + const Index m_start; + const Index m_end; }; #endif // EIGEN_MAPPED_SPARSEMATRIX_H |