[PPL-devel] [GIT] ppl/ppl(sparse_matrices): Unlimited_Sparse_Row: update the backend requirements.

Marco Poletti poletti.marco at gmail.com
Thu Apr 8 19:01:19 CEST 2010


Module: ppl/ppl
Branch: sparse_matrices
Commit: d4d4042ded72da571a7984a5800d4de84176aaf6
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=d4d4042ded72da571a7984a5800d4de84176aaf6

Author: Marco Poletti <poletti.marco at gmail.com>
Date:   Thu Apr  8 18:59:11 2010 +0200

Unlimited_Sparse_Row: update the backend requirements.

---

 src/Unlimited_Sparse_Row.defs.hh |   73 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/src/Unlimited_Sparse_Row.defs.hh b/src/Unlimited_Sparse_Row.defs.hh
index 5aeaec0..d53a552 100644
--- a/src/Unlimited_Sparse_Row.defs.hh
+++ b/src/Unlimited_Sparse_Row.defs.hh
@@ -97,6 +97,9 @@ namespace Parma_Polyhedra_Library {
   * C::value_type should be \p std::pair<dimension_type,Coefficient> .
   * C must have a swap() method.
   * C must have a const OK() method, returning bool.
+  * C must have a const external_memory_in_bytes() method, returning a
+    memory_size_type. This method returns the size in bytes of the memory
+    managed by \p *this.
   * C::const_iterator must have a default constructor
   * C::const_iterator must define operator*(), operator->(), and operator ==
     and !=.
@@ -109,6 +112,73 @@ namespace Parma_Polyhedra_Library {
   * C::dangerous_iterator must follow all the requirements for C::iterator.
   * C::dangerous_iterator must have a static method next(C::iterator i)
     that returns a dangerous_iterator pointing to the element after i.
+  * C must have a method find_dangerous(dimension_type i) returning a
+    C::dangerous_iterator. This method returns a dangerous_iterator pointing
+    to the element with index \p i, or end_dangerous() if there is no such
+    element.
+  * C must have a method
+    find_dangerous(dimension_type i, dangerous_iterator itr) returning a
+    C::dangerous_iterator. This method returns a dangerous_iterator pointing
+    to the element with index \p i, or end_dangerous() if there is no such
+    element. \p itr must be an iterator pointing to an element with index
+    less than i.
+  * C must have a method find(dimension_type i) returning a C::iterator.
+    This method returns a dangerous_iterator pointing to the element with
+    index \p i, or end() if there is no such element.
+  * C must have a method find(dimension_type i, iterator itr) returning a
+    C::iterator. This method returns an iterator pointing to the element with
+    index \p i, or end() if there is no such element. \p itr must be an
+    iterator pointing to an element with index less than i.
+  * C must have a const method find(dimension_type i) returning a
+    C::const_iterator. This method returns a const_iterator pointing to
+    the element with index \p i, or end() if there is no such element.
+  * C must have a const method find(dimension_type i, const_iterator itr)
+    returning a C::const_iterator. This method returns an iterator pointing to
+    the element with index \p i, or end() if there is no such element.
+    \p itr must be an iterator pointing to an element with index less than i.
+  * C must have a method lower_bound_dangerous(dimension_type i) returning a
+    C::dangerous_iterator. This method returns a dangerous_iterator pointing
+    to the element with index \p i, or to the last element with index less
+    than \p i, if there is no such element.
+  * C must have a method
+    lower_bound_dangerous(dimension_type i, dangerous_iterator itr) returning
+    a C::dangerous_iterator. This method returns a dangerous_iterator pointing
+    to the element with index \p i, or to the last element with index less
+    than \p i, if there is no such element.
+    \p itr must be an iterator pointing to an element with index less than i.
+  * C must have a method lower_bound(dimension_type i) returning a C::iterator.
+    This method returns a dangerous_iterator pointing to the element with
+    index \p i, or to the last element with index less than \p i, if there is
+    no such element.
+  * C must have a method lower_bound(dimension_type i, iterator itr) returning a
+    C::iterator. This method returns an iterator pointing to the element with
+    index \p i, or to the last element with index less than \p i, if there is
+    no such element.
+    \p itr must be an iterator pointing to an element with index less than i.
+  * C must have a const method lower_bound(dimension_type i) returning a
+    C::const_iterator. This method returns a const_iterator pointing to
+    the element with index \p i, or to the last element with index less than
+    \p i, if there is no such element.
+  * C must have a const method lower_bound(dimension_type i, const_iterator itr)
+    returning a C::const_iterator. This method returns an iterator pointing to
+    the element with index \p i, or to the last element with index less than
+    \p i, if there is no such element.
+    \p itr must be an iterator pointing to an element with index less than i.
+  * C must have a method
+    find2_dangerous(dimension_type c1, dimension_type c2,
+                    C::dangerous_iterator& itr1, C::dangerous_iterator& itr2)
+    returning void, equivalent to<BR>
+    itr1=find_dangerous(c1); itr2=find_dangerous(c2);
+  * C must have a method
+    find2(dimension_type c1, dimension_type c2,
+          iterator& itr1, iterator& itr2);
+    returning void, equivalent to<BR>
+    itr1=find(c1); itr2=find(c2);
+  * C must have a const method
+    find2(dimension_type c1, dimension_type c2,
+          C::const_iterator& itr1, C::const_iterator& itr2)
+    returning void, equivalent to<BR>
+    itr1=find(c1); itr2=find(c2);
   * C must have a method
     insert(C::dangerous_iterator pos, const C::value_type& x)
     returning a C::dangerous_iterator. This method inserts x before pos and
@@ -119,6 +189,9 @@ namespace Parma_Polyhedra_Library {
     returning a C::dangerous_iterator. This method inserts the pair (i, x)
     before pos and returns an iterator to the inserted element.
     This operation invalidates all C::dangerous_iterator objects equal to pos.
+  * C must have a method push_back(const C::value_type& x) returning void,
+    equivalent to<BR>
+    insert(end_dangerous(), x);
   * C must have a method erase(C::dangerous_iterator pos) returning a
     C::dangerous_iterator, that erases the element pointed to by pos.
     This operation invalidates all C::dangerous_iterators objects equal to




More information about the PPL-devel mailing list