
Module: ppl/ppl Branch: sparse_matrices Commit: 109aa87b6c2878e98a11aa6de74c859d6bb7ba89 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=109aa87b6c287...
Author: Marco Poletti poletti.marco@gmail.com Date: Tue Mar 9 22:14:45 2010 +0100
Sparse_Row, Sparse_Row_Reference: add assignment operator from Unlimited_Sparse_Row.
---
src/Sparse_Row.defs.hh | 7 +++++++ src/Sparse_Row.inlines.hh | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/src/Sparse_Row.defs.hh b/src/Sparse_Row.defs.hh index 16268c2..29f7374 100644 --- a/src/Sparse_Row.defs.hh +++ b/src/Sparse_Row.defs.hh @@ -72,6 +72,10 @@ public: Sparse_Row(const Sparse_Row_Reference& x);
//! Assigns a Sparse_Row_Reference to (*this). + //! x should have no nonzero elements with index greater than size(). + Sparse_Row& operator=(const Unlimited_Sparse_Row& x); + + //! Assigns a Sparse_Row_Reference to (*this). Sparse_Row& operator=(const Sparse_Row_Reference& x);
//! Swaps (*this) and x. @@ -201,6 +205,9 @@ public:
Sparse_Row_Reference(Unlimited_Sparse_Row& row,const dimension_type size);
+ Sparse_Row_Reference& operator=(const Unlimited_Sparse_Row& x); + + //! x should have no nonzero elements with index greater than size(). Sparse_Row_Reference& operator=(const Sparse_Row_Reference& x);
Sparse_Row_Reference& operator=(const Sparse_Row& x); diff --git a/src/Sparse_Row.inlines.hh b/src/Sparse_Row.inlines.hh index 3301485..1a4550c 100644 --- a/src/Sparse_Row.inlines.hh +++ b/src/Sparse_Row.inlines.hh @@ -56,6 +56,13 @@ Sparse_Row::Sparse_Row(const Sparse_Row_Reference& x) }
inline Sparse_Row& +Sparse_Row::operator=(const Unlimited_Sparse_Row& x) { + row = x; + PPL_ASSERT(OK()); + return *this; +} + +inline Sparse_Row& Sparse_Row::operator=(const Sparse_Row_Reference& x) { Sparse_Row_Reference(row,size_) = x; return *this; @@ -284,6 +291,13 @@ Sparse_Row_Reference::Sparse_Row_Reference(Unlimited_Sparse_Row& row1, }
inline Sparse_Row_Reference& +Sparse_Row_Reference::operator=(const Unlimited_Sparse_Row& x) { + row = x; + PPL_ASSERT(OK()); + return *this; +} + +inline Sparse_Row_Reference& Sparse_Row_Reference::operator=(const Sparse_Row_Reference& x) { PPL_ASSERT(size_ == x.size_); row = x.row;