aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Sparse/DynamicSparseMatrix.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Sparse/DynamicSparseMatrix.h')
-rw-r--r--Eigen/src/Sparse/DynamicSparseMatrix.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/Eigen/src/Sparse/DynamicSparseMatrix.h b/Eigen/src/Sparse/DynamicSparseMatrix.h
index 9644dbcd5..4373e1cda 100644
--- a/Eigen/src/Sparse/DynamicSparseMatrix.h
+++ b/Eigen/src/Sparse/DynamicSparseMatrix.h
@@ -58,6 +58,13 @@ struct ei_traits<DynamicSparseMatrix<_Scalar, _Flags> >
};
};
+template<typename _Scalar, int _Options>
+struct ei_ref_selector< DynamicSparseMatrix<_Scalar, _Options> >
+{
+ typedef DynamicSparseMatrix<_Scalar, _Options> MatrixType;
+ typedef MatrixType const& type;
+};
+
template<typename _Scalar, int _Flags>
class DynamicSparseMatrix
: public SparseMatrixBase<DynamicSparseMatrix<_Scalar, _Flags> >
@@ -82,7 +89,7 @@ class DynamicSparseMatrix
inline int rows() const { return IsRowMajor ? outerSize() : m_innerSize; }
inline int cols() const { return IsRowMajor ? m_innerSize : outerSize(); }
inline int innerSize() const { return m_innerSize; }
- inline int outerSize() const { return m_data.size(); }
+ inline int outerSize() const { return static_cast<int>(m_data.size()); }
inline int innerNonZeros(int j) const { return m_data[j].size(); }
std::vector<CompressedStorage<Scalar> >& _data() { return m_data; }
@@ -122,7 +129,7 @@ class DynamicSparseMatrix
{
int res = 0;
for (int j=0; j<outerSize(); ++j)
- res += m_data[j].size();
+ res += static_cast<int>(m_data[j].size());
return res;
}
@@ -189,7 +196,7 @@ class DynamicSparseMatrix
const int inner = IsRowMajor ? col : row;
int startId = 0;
- int id = m_data[outer].size() - 1;
+ int id = static_cast<int>(m_data[outer].size()) - 1;
m_data[outer].resize(id+2,1);
while ( (id >= startId) && (m_data[outer].index(id) > inner) )
@@ -209,7 +216,7 @@ class DynamicSparseMatrix
inline void finalize() {}
- void prune(Scalar reference, RealScalar epsilon = precision<RealScalar>())
+ void prune(Scalar reference, RealScalar epsilon = dummy_precision<RealScalar>())
{
for (int j=0; j<outerSize(); ++j)
m_data[j].prune(reference,epsilon);
@@ -314,7 +321,6 @@ class DynamicSparseMatrix<Scalar,_Flags>::InnerIterator : public SparseVector<Sc
inline int row() const { return IsRowMajor ? m_outer : Base::index(); }
inline int col() const { return IsRowMajor ? Base::index() : m_outer; }
-
protected:
const int m_outer;
};