Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r65328 - in sandbox/itl/boost/itl: . detail
From: afojgo_at_[hidden]
Date: 2010-09-07 06:01:14


Author: jofaber
Date: 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
New Revision: 65328
URL: http://svn.boost.org/trac/boost/changeset/65328

Log:
Refactoring: Unified joining, separating and splitting addition on interval sets by partial implementations of a static class on_style<T, combining_style>. Stable{msvc-9.0, gcc-3.4.4}
Text files modified:
   sandbox/itl/boost/itl/detail/interval_set_algo.hpp | 252 ++++++++++++++++++++-------------------
   sandbox/itl/boost/itl/functions.hpp | 76 -----------
   sandbox/itl/boost/itl/interval_base_set.hpp | 47 ------
   sandbox/itl/boost/itl/interval_set.hpp | 4
   sandbox/itl/boost/itl/separate_interval_set.hpp | 4
   sandbox/itl/boost/itl/split_interval_set.hpp | 4
   6 files changed, 145 insertions(+), 242 deletions(-)

Modified: sandbox/itl/boost/itl/detail/interval_set_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_set_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_set_algo.hpp 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
@@ -15,6 +15,7 @@
 #include <boost/itl/type_traits/is_total.hpp>
 #include <boost/itl/type_traits/is_combinable.hpp>
 #include <boost/itl/interval.hpp>
+#include <boost/itl/interval_combining_style.hpp>
 #include <boost/itl/detail/element_comparer.hpp>
 #include <boost/itl/detail/interval_subset_comparer.hpp>
 #include <boost/itl/detail/associated_value.hpp>
@@ -293,13 +294,13 @@
 inline bool joinable(const Type& _Type, typename Type::iterator& some, typename Type::iterator& next)
 {
     // assert: next != end && some++ == next
- return touches(Type::key_value(some), Type::key_value(next))
+ return touches(Type::key_value(some), Type::key_value(next))
         && co_equal(some, next, &_Type, &_Type);
 }
 
 template<class Type>
 inline void join_nodes(Type& object, typename Type::iterator& left_,
- typename Type::iterator& right_)
+ typename Type::iterator& right_)
 {
     typedef typename Type::interval_type interval_type;
     interval_type right_interval = Type::key_value(right_);
@@ -318,7 +319,7 @@
     BOOST_ASSERT(exclusive_less(Type::key_value(left_), Type::key_value(right_)));
     BOOST_ASSERT(joinable(object, left_, right_));
 
- join_nodes(object, left_, right_);
+ join_nodes(object, left_, right_);
     return left_;
 }
 
@@ -332,7 +333,7 @@
     BOOST_ASSERT(exclusive_less(Type::key_value(left_), Type::key_value(right_)));
     BOOST_ASSERT(joinable(object, left_, right_));
 
- join_nodes(object, left_, right_);
+ join_nodes(object, left_, right_);
     right_ = left_;
     return right_;
 }
@@ -344,15 +345,15 @@
 template<class Type>
 typename Type::iterator join_left(Type& object, typename Type::iterator& it_)
 {
- typedef typename Type::iterator iterator;
+ typedef typename Type::iterator iterator;
 
     if(it_ == object.begin())
         return it_;
 
     // there is a predecessor
     iterator pred_ = it_;
- if(joinable(object, --pred_, it_))
- return join_on_right(object, pred_, it_);
+ if(joinable(object, --pred_, it_))
+ return join_on_right(object, pred_, it_);
 
     return it_;
 }
@@ -361,7 +362,7 @@
 template<class Type>
 typename Type::iterator join_right(Type& object, typename Type::iterator& it_)
 {
- typedef typename Type::iterator iterator;
+ typedef typename Type::iterator iterator;
 
     if(it_ == object.end())
         return it_;
@@ -369,7 +370,7 @@
     // there is a successor
     iterator succ_ = it_;
 
- if(++succ_ != object.end() && joinable(object, it_, succ_))
+ if(++succ_ != object.end() && joinable(object, it_, succ_))
         return join_on_left(object, it_, succ_);
 
     return it_;
@@ -380,12 +381,12 @@
 typename Type::iterator join_neighbours(Type& object, typename Type::iterator& it_)
 {
            join_left (object, it_);
- return join_right(object, it_);
+ return join_right(object, it_);
 }
 
 
 template<class Type>
-typename Type::iterator
+inline typename Type::iterator
     join_under(Type& object, const typename Type::value_type& addend)
 {
     //ASSERT: There is at least one interval in object that overlaps with addend
@@ -410,130 +411,154 @@
     return first_;
 }
 
-} // namespace segmental
-
-namespace Interval_Set
-{
-using namespace segmental;
-
-//==============================================================================
-//= Addition joining
-//==============================================================================
 template<class Type>
-typename Type::iterator
- joining_add(Type& object, const typename Type::value_type& addend)
+inline typename Type::iterator
+ join_under(Type& object, const typename Type::value_type& addend,
+ typename Type::iterator last_)
 {
+ //ASSERT: There is at least one interval in object that overlaps with addend
     typedef typename Type::iterator iterator;
     typedef typename Type::interval_type interval_type;
     typedef typename Type::value_type value_type;
 
- if(itl::is_empty(addend))
- return object.end();
+ iterator first_ = object.lower_bound(addend);
+ //BOOST_ASSERT(next(last_) == this->_set.upper_bound(inter_val));
+ iterator second_= next(first_), end_ = next(last_);
 
- std::pair<iterator,bool> insertion = object._insert(addend);
+ interval_type left_resid = right_subtract(Type::key_value(first_), addend);
+ interval_type right_resid = left_subtract(Type::key_value(last_) , addend);
 
- if(insertion.second)
- return join_neighbours(object, insertion.first);
- else
- {
- iterator joined_ = join_under(object, addend);
- return join_neighbours(object, joined_);
- }
+ object.erase(second_, end_);
+
+ const_cast<value_type&>(Type::key_value(first_))
+ = hull(hull(left_resid, addend), right_resid);
+ return first_;
 }
 
+} // namespace segmental
+
+namespace Interval_Set
+{
+using namespace segmental;
+
+template<class Type, int combining_style>
+struct on_style;
+
 template<class Type>
-typename Type::iterator
- joining_add(Type& object, typename Type::iterator prior_,
- const typename Type::value_type& addend)
+struct on_style<Type, interval_combine::joining>
 {
- typedef typename Type::iterator iterator;
+ typedef on_style type;
     typedef typename Type::interval_type interval_type;
- typedef typename Type::value_type value_type;
+ typedef typename Type::iterator iterator;
 
- if(itl::is_empty(addend))
- return prior_;
+ inline static iterator handle_inserted(Type& object, iterator inserted_)
+ { return join_neighbours(object, inserted_); }
 
- iterator insertion = object._insert(prior_, addend);
+ inline static iterator add_over
+ (Type& object, const interval_type& addend, iterator last_)
+ {
+ iterator joined_ = join_under(object, addend, last_);
+ return join_neighbours(object, joined_);
+ }
 
- if(*insertion == addend)
- return join_neighbours(object, insertion);
- else
- {
+ inline static iterator add_over
+ (Type& object, const interval_type& addend)
+ {
                 iterator joined_ = join_under(object, addend);
         return join_neighbours(object, joined_);
- }
-}
-
+ }
+};
 
-//==============================================================================
-//= Addition separating
-//==============================================================================
 template<class Type>
-typename Type::iterator
- separating_add(Type& object, const typename Type::value_type& addend)
+struct on_style<Type, interval_combine::separating>
 {
- typedef typename Type::iterator iterator;
+ typedef on_style type;
     typedef typename Type::interval_type interval_type;
- typedef typename Type::value_type value_type;
+ typedef typename Type::iterator iterator;
 
- if(itl::is_empty(addend))
- return object.end();
+ inline static iterator handle_inserted(Type&, iterator inserted_)
+ { return inserted_; }
 
- std::pair<iterator,bool> insertion = object._insert(addend);
+ inline static iterator add_over
+ (Type& object, const interval_type& addend, iterator last_)
+ {
+ return join_under(object, addend, last_);
+ }
 
- if(insertion.second)
- return insertion.first;
- else
+ inline static iterator add_over
+ (Type& object, const interval_type& addend)
+ {
         return join_under(object, addend);
-}
+ }
+};
 
 template<class Type>
-typename Type::iterator
- separating_add(Type& object, typename Type::iterator prior_,
- const typename Type::value_type& addend)
+struct on_style<Type, interval_combine::splitting>
 {
- typedef typename Type::iterator iterator;
+ typedef on_style type;
     typedef typename Type::interval_type interval_type;
- typedef typename Type::value_type value_type;
+ typedef typename Type::iterator iterator;
 
- if(itl::is_empty(addend))
- return prior_;
+ inline static iterator handle_inserted(Type&, iterator inserted_)
+ { return inserted_; }
 
- iterator insertion = object._insert(prior_, addend);
+ inline static iterator add_over
+ (Type& object, const interval_type& addend, iterator last_)
+ {
+ iterator first_ = object.lower_bound(addend);
+ //BOOST_ASSERT(next(last_) == this->_set.upper_bound(inter_val));
 
- if(*insertion == addend)
- return insertion;
- else
- return join_under(object, addend);
-}
+ iterator it_ = first_;
+ interval_type rest_interval = addend;
 
+ add_front(object, rest_interval, it_);
+ add_main (object, rest_interval, it_, last_);
+ add_rear (object, rest_interval, it_);
+ return it_;
+ }
+
+ inline static iterator add_over
+ (Type& object, const interval_type& addend)
+ {
+ std::pair<iterator,iterator> overlap = object.equal_range(addend);
+ iterator first_ = overlap.first,
+ end_ = overlap.second,
+ last_ = end_; --last_;
+
+ iterator it_ = first_;
+ interval_type rest_interval = addend;
+
+ add_front(object, rest_interval, it_);
+ add_main (object, rest_interval, it_, last_);
+ add_rear (object, rest_interval, it_);
+
+ return it_;
+ }
+};
 
-//==============================================================================
-//= Addition splitting
-//==============================================================================
 
 template<class Type>
 void add_front(Type& object, const typename Type::interval_type& inter_val,
                                    typename Type::iterator& first_)
 {
- typedef typename Type::interval_type interval_type;
- typedef typename Type::iterator iterator;
+ typedef typename Type::interval_type interval_type;
+ typedef typename Type::iterator iterator;
     // If the collision sequence has a left residual 'left_resid' it will
     // be split, to provide a standardized start of algorithms:
     // The addend interval 'inter_val' covers the beginning of the collision sequence.
 
     // only for the first there can be a left_resid: a part of *first_ left of inter_val
- interval_type left_resid = right_subtract(Type::key_value(first_), inter_val);
+ interval_type left_resid = right_subtract(Type::key_value(first_), inter_val);
 
     if(!itl::is_empty(left_resid))
     { // [------------ . . .
         // [left_resid---first_ --- . . .
         iterator prior_ = object.prior(first_);
         const_cast<interval_type&>(Type::key_value(first_))
- = left_subtract(Type::key_value(first_), left_resid);
+ = left_subtract(Type::key_value(first_), left_resid);
         //NOTE: Only splitting
         //CL iterator insertion_ =
- object._insert(prior_, Type::make_value(left_resid, Type::co_value(first_)));
+ object._insert(prior_, Type::make_value(left_resid, Type::co_value(first_)));
     }
 
     //POST:
@@ -546,7 +571,7 @@
 void add_segment(Type& object, const typename Type::interval_type& inter_val,
                                      typename Type::iterator& it_ )
 {
- typedef typename Type::interval_type interval_type;
+ typedef typename Type::interval_type interval_type;
     interval_type lead_gap = right_subtract(inter_val, *it_);
     if(!itl::is_empty(lead_gap))
         // [lead_gap--- . . .
@@ -564,7 +589,7 @@
                             typename Type::iterator& it_,
                       const typename Type::iterator& last_)
 {
- typedef typename Type::interval_type interval_type;
+ typedef typename Type::interval_type interval_type;
     interval_type cur_interval;
     while(it_ != last_)
     {
@@ -580,8 +605,8 @@
 void add_rear(Type& object, const typename Type::interval_type& inter_val,
                                   typename Type::iterator& it_ )
 {
- typedef typename Type::interval_type interval_type;
- typedef typename Type::iterator iterator;
+ typedef typename Type::interval_type interval_type;
+ typedef typename Type::iterator iterator;
 
     iterator prior_ = object.prior(it_);
     interval_type cur_itv = *it_;
@@ -613,12 +638,16 @@
 }
 
 
+//==============================================================================
+//= Addition
+//==============================================================================
 template<class Type>
 typename Type::iterator
- splitting_add(Type& object, const typename Type::value_type& addend)
+ add(Type& object, const typename Type::value_type& addend)
 {
- typedef typename Type::interval_type interval_type;
- typedef typename Type::iterator iterator;
+ typedef typename Type::interval_type interval_type;
+ typedef typename Type::iterator iterator;
+ typedef typename on_style<Type, Type::fineness>::type on_style_;
 
     if(itl::is_empty(addend))
         return object.end();
@@ -626,30 +655,20 @@
     std::pair<iterator,bool> insertion = object._insert(addend);
 
     if(insertion.second)
- return insertion.first;
- {
- iterator first_ = object.lower_bound(addend),
- last_ = insertion.first;
- //BOOST_ASSERT(next(last_) == this->_set.upper_bound(inter_val));
-
- iterator it_ = first_;
- interval_type rest_interval = addend;
-
- add_front(object, rest_interval, it_);
- add_main (object, rest_interval, it_, last_);
- add_rear (object, rest_interval, it_);
- return it_;
- }
+ return on_style_::handle_inserted(object, insertion.first);
+ else
+ return on_style_::add_over(object, addend, insertion.first);
 }
 
 
 template<class Type>
 typename Type::iterator
- splitting_add(Type& object, typename Type::iterator prior_,
- const typename Type::value_type& addend)
+ add(Type& object, typename Type::iterator prior_,
+ const typename Type::value_type& addend)
 {
- typedef typename Type::interval_type interval_type;
- typedef typename Type::iterator iterator;
+ typedef typename Type::interval_type interval_type;
+ typedef typename Type::iterator iterator;
+ typedef typename on_style<Type, Type::fineness>::type on_style_;
 
     if(itl::is_empty(addend))
         return prior_;
@@ -657,22 +676,9 @@
     iterator insertion = object._insert(prior_, addend);
 
     if(*insertion == addend)
- return insertion;
- {
- std::pair<iterator,iterator> overlap = object.equal_range(addend);
- iterator first_ = overlap.first,
- end_ = overlap.second,
- last_ = end_; --last_;
-
- iterator it_ = first_;
- interval_type rest_interval = addend;
-
- add_front(object, rest_interval, it_);
- add_main (object, rest_interval, it_, last_);
- add_rear (object, rest_interval, it_);
-
- return it_;
- }
+ return on_style_::handle_inserted(object, insertion);
+ else
+ return on_style_::add_over(object, addend);
 }
 
 

Modified: sandbox/itl/boost/itl/functions.hpp
==============================================================================
--- sandbox/itl/boost/itl/functions.hpp (original)
+++ sandbox/itl/boost/itl/functions.hpp 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
@@ -178,92 +178,28 @@
 //==============================================================================
 //= Addition
 //==============================================================================
-
-//- joining_add ----------------------------------------------------------------
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_joiner<ObjectT> >, ObjectT>::type&
-add(ObjectT& object, const typename ObjectT::element_type& operand)
-{
- Interval_Set::joining_add(object, typename ObjectT::interval_type(operand));
- return object; //JODO: May be it is better to return the iterator
-}
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_joiner<ObjectT> >, ObjectT>::type&
-add(ObjectT& object, const typename ObjectT::segment_type& operand)
-{
- Interval_Set::joining_add(object, operand);
- return object; //JODO: May be it is better to return the iterator
-}
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_joiner<ObjectT> >,
- typename ObjectT::iterator>::type
-add(ObjectT& object, typename ObjectT::iterator prior,
- const typename ObjectT::segment_type& operand)
-{
- return Interval_Set::joining_add(object, prior, operand);
-}
-
-//- separating_add -------------------------------------------------------------
 template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_separator<ObjectT> >, ObjectT>::type&
+typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
 add(ObjectT& object, const typename ObjectT::element_type& operand)
 {
- Interval_Set::separating_add(object, typename ObjectT::interval_type(operand));
+ Interval_Set::add(object, typename ObjectT::interval_type(operand));
     return object;
 }
 
 template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_separator<ObjectT> >, ObjectT>::type&
+typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
 add(ObjectT& object, const typename ObjectT::segment_type& operand)
 {
- Interval_Set::separating_add(object, operand);
- return object; //JODO: May be it is better to return the iterator
-}
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_separator<ObjectT> >,
- typename ObjectT::iterator>::type
-add(ObjectT& object, typename ObjectT::iterator prior,
- const typename ObjectT::segment_type& operand)
-{
- return Interval_Set::separating_add(object, prior, operand);
-}
-
-//- splitting_add -------------------------------------------------------------
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_splitter<ObjectT> >, ObjectT>::type&
-add(ObjectT& object, const typename ObjectT::element_type& operand)
-{
- Interval_Set::splitting_add(object, typename ObjectT::interval_type(operand));
+ Interval_Set::add(object, operand);
     return object;
 }
 
 template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_splitter<ObjectT> >, ObjectT>::type&
-add(ObjectT& object, const typename ObjectT::segment_type& operand)
-{
- Interval_Set::splitting_add(object, operand);
- return object; //JODO: May be it is better to return the iterator
-}
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_splitter<ObjectT> >,
- typename ObjectT::iterator>::type
+typename enable_if<is_interval_set<ObjectT>, typename ObjectT::iterator>::type
 add(ObjectT& object, typename ObjectT::iterator prior,
                const typename ObjectT::segment_type& operand)
 {
- return Interval_Set::splitting_add(object, prior, operand);
+ return Interval_Set::add(object, prior, operand);
 }
 //------------------------------------------------------------------------------
 

Modified: sandbox/itl/boost/itl/interval_base_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_set.hpp 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
@@ -50,60 +50,21 @@
 typename enable_if<is_interval_set<ObjectT>, bool>::type
 contains(const ObjectT& super, const typename ObjectT::element_type&);
 
-//- joining_add -------------------------------------------------------------
+//- add ------------------------------------------------------------------------
 template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_joiner<ObjectT> >, ObjectT>::type&
+typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
 add(ObjectT&, const typename ObjectT::element_type&);
 
 template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_joiner<ObjectT> >, ObjectT>::type&
+typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
 add(ObjectT&, const typename ObjectT::segment_type&);
 
 template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_joiner<ObjectT> >,
- typename ObjectT::iterator>::type
+typename enable_if<is_interval_set<ObjectT>, typename ObjectT::iterator>::type
 add(ObjectT&, typename ObjectT::iterator,
         const typename ObjectT::segment_type&);
 
-//- separating_add -------------------------------------------------------------
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_separator<ObjectT> >, ObjectT>::type&
-add(ObjectT&, const typename ObjectT::element_type&);
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_separator<ObjectT> >, ObjectT>::type&
-add(ObjectT& object, const typename ObjectT::segment_type& operand);
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_separator<ObjectT> >,
- typename ObjectT::iterator>::type
-add(ObjectT& object, typename ObjectT::iterator prior,
- const typename ObjectT::segment_type& operand);
 
-//- splitting_add -------------------------------------------------------------
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_splitter<ObjectT> >, ObjectT>::type&
-add(ObjectT&, const typename ObjectT::element_type&);
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_splitter<ObjectT> >, ObjectT>::type&
-add(ObjectT& object, const typename ObjectT::segment_type& operand);
-
-template<class ObjectT>
-typename enable_if<mpl::and_< is_interval_set<ObjectT>
- , is_interval_splitter<ObjectT> >,
- typename ObjectT::iterator>::type
-add(ObjectT& object, typename ObjectT::iterator prior,
- const typename ObjectT::segment_type& operand);
-//------------------------------------------------------------------------------
 template<class ObjectT>
 typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
 subtract(ObjectT&, const typename ObjectT::element_type&);

Modified: sandbox/itl/boost/itl/interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_set.hpp 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
@@ -163,7 +163,7 @@
 template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
 void interval_set<DomainT,Compare,Interval,Alloc>::add_(const value_type& addend)
 {
- Interval_Set::joining_add(*this, addend);
+ Interval_Set::add(*this, addend);
 }
 
 
@@ -171,7 +171,7 @@
 typename interval_set<DomainT,Compare,Interval,Alloc>::iterator
     interval_set<DomainT,Compare,Interval,Alloc>::add_(iterator prior_, const value_type& addend)
 {
- return Interval_Set::joining_add(*this, prior_, addend);
+ return Interval_Set::add(*this, prior_, addend);
 }
 
 

Modified: sandbox/itl/boost/itl/separate_interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/separate_interval_set.hpp (original)
+++ sandbox/itl/boost/itl/separate_interval_set.hpp 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
@@ -148,14 +148,14 @@
 template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
 inline void separate_interval_set<DomainT,Compare,Interval,Alloc>::add_(const value_type& addend)
 {
- Interval_Set::separating_add(*this, addend);
+ Interval_Set::add(*this, addend);
 }
 
 template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
 typename separate_interval_set<DomainT,Compare,Interval,Alloc>::iterator
     separate_interval_set<DomainT,Compare,Interval,Alloc>::add_(iterator prior_, const value_type& addend)
 {
- return Interval_Set::separating_add(*this, prior_, addend);
+ return Interval_Set::add(*this, prior_, addend);
 }
 
 

Modified: sandbox/itl/boost/itl/split_interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_set.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_set.hpp 2010-09-07 06:01:12 EDT (Tue, 07 Sep 2010)
@@ -149,7 +149,7 @@
 template <typename DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
 inline void split_interval_set<DomainT,Compare,Interval,Alloc>::add_(const value_type& addend)
 {
- Interval_Set::splitting_add(*this, addend);
+ Interval_Set::add(*this, addend);
 }
 
 
@@ -157,7 +157,7 @@
 inline typename split_interval_set<DomainT,Compare,Interval,Alloc>::iterator
     split_interval_set<DomainT,Compare,Interval,Alloc>::add_(iterator prior_, const value_type& addend)
 {
- return Interval_Set::splitting_add(*this, prior_, addend);
+ return Interval_Set::add(*this, prior_, addend);
 }
 
 template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk