|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r65217 - in sandbox/itl/boost/itl: . detail functions
From: afojgo_at_[hidden]
Date: 2010-09-03 12:27:12
Author: jofaber
Date: 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
New Revision: 65217
URL: http://svn.boost.org/trac/boost/changeset/65217
Log:
Refactoring. Unifying interval_maps: Extraction of functions. Removed Tabs. Stable{msvc-9.0, gcc-3.4.4}
Text files modified:
sandbox/itl/boost/itl/detail/associated_value.hpp | 6
sandbox/itl/boost/itl/detail/interval_map_algo.hpp | 59 ++++++++++++++
sandbox/itl/boost/itl/detail/interval_set_algo.hpp | 132 ++++++++++++++++++++------------
sandbox/itl/boost/itl/functions.hpp | 84 ++++++++++----------
sandbox/itl/boost/itl/functions/associative_element_container.hpp | 2
sandbox/itl/boost/itl/interval_base_map.hpp | 22 ++--
sandbox/itl/boost/itl/interval_base_set.hpp | 156 +++++++++++++++++++-------------------
sandbox/itl/boost/itl/interval_map.hpp | 162 +++++----------------------------------
sandbox/itl/boost/itl/interval_set.hpp | 10 +-
sandbox/itl/boost/itl/map.hpp | 2
sandbox/itl/boost/itl/map_functions.hpp | 4
sandbox/itl/boost/itl/separate_interval_set.hpp | 6
sandbox/itl/boost/itl/set.hpp | 22 ++--
sandbox/itl/boost/itl/split_interval_set.hpp | 6
14 files changed, 322 insertions(+), 351 deletions(-)
Modified: sandbox/itl/boost/itl/detail/associated_value.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/associated_value.hpp (original)
+++ sandbox/itl/boost/itl/detail/associated_value.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -20,8 +20,8 @@
typename enable_if< mpl::and_< is_domain_compare_equal<Type,CoType>
, mpl::and_<is_map<Type>, is_map<CoType> > >,
bool>::type
-co_equal(typename Type::const_iterator left_, typename CoType::const_iterator right_,
- const Type&, const CoType&)
+co_equal(typename Type::const_iterator left_, typename CoType::const_iterator right_,
+ const Type* = 0, const CoType* = 0)
{
return Type::co_value(left_) == CoType::co_value(right_);
}
@@ -31,7 +31,7 @@
, mpl::not_<mpl::and_<is_map<Type>, is_map<CoType> > > >,
bool>::type
co_equal(typename Type::const_iterator, typename CoType::const_iterator,
- const Type&, const CoType&)
+ const Type* = 0, const CoType* = 0)
{
return true;
}
Modified: sandbox/itl/boost/itl/detail/interval_map_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_map_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_map_algo.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -166,7 +166,64 @@
} // namespace Interval_Map
-
+
+
+namespace detail
+{
+
+
+template <class Type, class Combiner>
+inline typename Type::iterator
+gap_insert( Type& object,
+ typename Type::iterator prior_,
+ const typename Type::interval_type& inter_val,
+ const typename Type::codomain_type& co_val)
+{
+ typedef typename Type::value_type value_type;
+ // inter_val is not conained in this map. Insertion will be successful
+ BOOST_ASSERT(object.find(inter_val) == object.end());
+ BOOST_ASSERT(!(absorbs_neutrons<Type>::value && co_val==Combiner::neutron()));
+
+ return object._insert(prior_, value_type(inter_val, version<Combiner>()(co_val)));
+}
+
+
+template<class Type, class Combiner>
+void add_segment( Type& object,
+ const typename Type::interval_type& inter_val,
+ const typename Type::codomain_type& co_val,
+ typename Type::iterator& it_ )
+{
+ typedef typename Type::interval_type interval_type;
+ typedef typename Type::iterator iterator;
+
+ interval_type lead_gap = right_subtract(inter_val, it_->first);
+ if(!itl::is_empty(lead_gap))
+ {
+ // [lead_gap--- . . .
+ // [-- it_ ...
+ iterator prior_ = prior(it_);
+ iterator inserted_ = gap_insert<Type,Combiner>(object, prior_, lead_gap, co_val);
+ if(prior_ != object.end() && joinable(object, prior_, inserted_))
+ join_on_right(object, prior_, inserted_);
+ }
+
+ // . . . --------- . . . addend interval
+ // [-- it_ --) has a common part with the first overval
+ Combiner()(it_->second, co_val);
+ if(absorbs_neutrons<Type>::value && it_->second == Combiner::neutron())
+ object.erase(it_++);
+ else
+ {
+ detail::join_left(object, it_);
+ ++it_;
+ }
+}
+
+
+
+} // namespace detail
+
}} // namespace itl boost
#endif
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-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -17,6 +17,7 @@
#include <boost/itl/interval.hpp>
#include <boost/itl/detail/element_comparer.hpp>
#include <boost/itl/detail/interval_subset_comparer.hpp>
+#include <boost/itl/detail/associated_value.hpp>
namespace boost{namespace itl
{
@@ -289,76 +290,101 @@
{
template<class Type>
-typename Type::iterator
+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))
+ && co_equal(some, next, &_Type, &_Type);
+}
+
+template<class Type>
+inline void join_nodes(Type& object, typename Type::iterator& left_,
+ typename Type::iterator& right_)
+{
+ typedef typename Type::interval_type interval_type;
+ interval_type right_interval = Type::key_value(right_);
+ object.erase(right_);
+ const_cast<interval_type&>(Type::key_value(left_))
+ = hull(Type::key_value(left_), right_interval);
+}
+
+template<class Type>
+inline typename Type::iterator
join_on_left(Type& object, typename Type::iterator& left_,
typename Type::iterator& right_)
{
- typedef typename Type::value_type value_type;
typedef typename Type::interval_type interval_type;
// both left and right are in the set and they are neighbours
BOOST_ASSERT(exclusive_less(Type::key_value(left_), Type::key_value(right_)));
- BOOST_ASSERT(touches(Type::key_value(left_), Type::key_value(right_)));
-
- interval_type right_itv = Type::key_value(right_);
- object.erase(right_);
- const_cast<value_type&>(Type::key_value(left_))
- = hull(Type::key_value(left_), right_itv);
+ BOOST_ASSERT(joinable(object, left_, right_));
+ join_nodes(object, left_, right_);
return left_;
}
template<class Type>
-typename Type::iterator
- join_neighbours(Type& object, typename Type::iterator it_)
+inline typename Type::iterator
+ join_on_right(Type& object, typename Type::iterator& left_,
+ typename Type::iterator& right_)
{
- using namespace detail;
- typedef typename Type::iterator iterator;
+ typedef typename Type::interval_type interval_type;
+ // both left and right are in the map and they are neighbours
+ BOOST_ASSERT(exclusive_less(Type::key_value(left_), Type::key_value(right_)));
+ BOOST_ASSERT(joinable(object, left_, right_));
+
+ join_nodes(object, left_, right_);
+ right_ = left_;
+ return right_;
+}
+
+
+
+
+
+template<class Type>
+typename Type::iterator join_left(Type& object, typename Type::iterator& it_)
+{
+ typedef typename Type::iterator iterator;
if(it_ == object.begin())
- {
- iterator it_nxt=it_; it_nxt++;
- if(it_nxt!=object.end() && touches(Type::key_value(it_),
- Type::key_value(it_nxt)))
- return join_on_left(object, it_, it_nxt);
- }
- else
- {
- // there is a predecessor
- iterator pred_ = it_; pred_-- ;
+ return it_;
- if(touches(Type::key_value(pred_), Type::key_value(it_)))
- {
- iterator it_extended = join_on_left(object, pred_, it_);
+ // there is a predecessor
+ iterator pred_ = it_;
+ if(joinable(object, --pred_, it_))
+ return join_on_right(object, pred_, it_);
+
+ return it_;
+}
- iterator succ_=it_extended; succ_++;
- if(succ_!=object.end())
- {
- // it's a non border element that might have two touching neighbours
- if(touches(Type::key_value(it_extended), Type::key_value(succ_)))
- return join_on_left(object, it_extended, succ_);
- else
- return it_extended;
- }
- else
- return it_extended;
- }
- else
- {
- iterator succ_=it_; succ_++;
- if(succ_!=object.end())
- {
- // it's a non border element that might have a right touching neighbour
- if(touches(Type::key_value(it_), Type::key_value(succ_)))
- return join_on_left(object, it_, succ_);
- }
- }
- }
+
+template<class Type>
+typename Type::iterator join_right(Type& object, typename Type::iterator& it_)
+{
+ typedef typename Type::iterator iterator;
+
+ if(it_ == object.end())
+ return it_;
+
+ // there is a successor
+ iterator succ_ = it_;
+
+ if(++succ_ != object.end() && joinable(object, it_, succ_))
+ return join_on_left(object, it_, succ_);
return it_;
}
template<class Type>
+typename Type::iterator join_neighbours(Type& object, typename Type::iterator& it_)
+{
+ join_left (object, it_);
+ return join_right(object, it_);
+}
+
+
+template<class Type>
typename Type::iterator
join_under(Type& object, const typename Type::value_type& addend)
{
@@ -403,7 +429,10 @@
if(insertion.second)
return join_neighbours(object, insertion.first);
else
- return join_neighbours(object, join_under(object, addend));
+ {
+ iterator joined_ = join_under(object, addend);
+ return join_neighbours(object, joined_);
+ }
}
template<class Type>
@@ -423,7 +452,10 @@
if(*insertion == addend)
return join_neighbours(object, insertion);
else
- return join_neighbours(object, join_under(object, addend));
+ {
+ iterator joined_ = join_under(object, addend);
+ return join_neighbours(object, joined_);
+ }
}
Modified: sandbox/itl/boost/itl/functions.hpp
==============================================================================
--- sandbox/itl/boost/itl/functions.hpp (original)
+++ sandbox/itl/boost/itl/functions.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -185,7 +185,7 @@
, is_interval_joiner<ObjectT> >, ObjectT>::type&
add(ObjectT& object, const typename ObjectT::element_type& operand)
{
- detail::joining_add(object, typename ObjectT::interval_type(operand));
+ detail::joining_add(object, typename ObjectT::interval_type(operand));
return object; //JODO: May be it is better to return the iterator
}
@@ -194,7 +194,7 @@
, is_interval_joiner<ObjectT> >, ObjectT>::type&
add(ObjectT& object, const typename ObjectT::segment_type& operand)
{
- detail::joining_add(object, operand);
+ detail::joining_add(object, operand);
return object; //JODO: May be it is better to return the iterator
}
@@ -214,7 +214,7 @@
, is_interval_separator<ObjectT> >, ObjectT>::type&
add(ObjectT& object, const typename ObjectT::element_type& operand)
{
- detail::separating_add(object, typename ObjectT::interval_type(operand));
+ detail::separating_add(object, typename ObjectT::interval_type(operand));
return object;
}
@@ -243,7 +243,7 @@
, is_interval_splitter<ObjectT> >, ObjectT>::type&
add(ObjectT& object, const typename ObjectT::element_type& operand)
{
- detail::splitting_add(object, typename ObjectT::interval_type(operand));
+ detail::splitting_add(object, typename ObjectT::interval_type(operand));
return object;
}
@@ -278,7 +278,7 @@
{
typename ObjectT::iterator prior_ = object.end();
ITL_const_FORALL(typename OperandT, elem_, operand)
- prior_ = object.add(prior_, *elem_); //JODO
+ prior_ = object.add(prior_, *elem_); //JODO
return object;
}
@@ -308,8 +308,8 @@
typename enable_if<is_intra_derivative<ObjectT, OperandT>, ObjectT>::type&
operator += (ObjectT& object, const OperandT& operand)
{
- //JODO return itl::add(object, operand);
- return object.add(operand);
+ //JODO return itl::add(object, operand);
+ return object.add(operand);
}
//CL
@@ -472,7 +472,7 @@
operator -=(ObjectT& object, const OperandT& operand)
{
ITL_const_FORALL(typename OperandT, elem_, operand)
- object.subtract(*elem_); //JODO
+ object.subtract(*elem_); //JODO
return object;
}
@@ -481,8 +481,8 @@
typename enable_if<is_intra_derivative<ObjectT, OperandT>, ObjectT>::type&
operator -= (ObjectT& object, const OperandT& operand)
{
- //JODO return itl::subtract(object, operand);
- return object.subtract(operand);
+ //JODO return itl::subtract(object, operand);
+ return object.subtract(operand);
}
template<class ObjectT, class OperandT>
@@ -557,25 +557,25 @@
template<class ObjectT>
typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
add_intersection(ObjectT& section, const ObjectT& object,
- const typename ObjectT::domain_type& operand)
+ const typename ObjectT::domain_type& operand)
{
- typedef typename ObjectT::const_iterator const_iterator;
- const_iterator found = object.find(operand);
- if(found != object.end())
- itl::add(section, operand);
+ typedef typename ObjectT::const_iterator const_iterator;
+ const_iterator found = object.find(operand);
+ if(found != object.end())
+ itl::add(section, operand);
- return section;
+ return section;
}
template<class ObjectT>
typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
add_intersection(ObjectT& section, const ObjectT& object,
- const typename ObjectT::segment_type& segment)
+ const typename ObjectT::segment_type& segment)
{
- typedef typename ObjectT::const_iterator const_iterator;
- typedef typename ObjectT::iterator iterator;
- typedef typename ObjectT::interval_type interval_type;
+ typedef typename ObjectT::const_iterator const_iterator;
+ typedef typename ObjectT::iterator iterator;
+ typedef typename ObjectT::interval_type interval_type;
if(itl::is_empty(segment))
return section;
@@ -588,11 +588,11 @@
iterator prior_ = section.end();
for(const_iterator it_=exterior.first; it_ != exterior.second; it_++)
{
- interval_type common_interval = ObjectT::key_value(it_) & segment;
+ interval_type common_interval = ObjectT::key_value(it_) & segment;
if(!itl::is_empty(common_interval))
prior_ = section._insert(prior_, common_interval);
}
- return section;
+ return section;
}
@@ -602,7 +602,7 @@
ObjectT>::type&
add_intersection(ObjectT& section, const ObjectT& object, const OperandT& operand)
{
- typedef typename OperandT::const_iterator const_iterator;
+ typedef typename OperandT::const_iterator const_iterator;
if(operand.empty())
return section;
@@ -613,9 +613,9 @@
const_iterator it_ = common_lwb;
while(it_ != common_upb)
- itl::add_intersection(section, object, OperandT::key_value(it_++));
+ itl::add_intersection(section, object, OperandT::key_value(it_++));
- return section;
+ return section;
}
@@ -661,7 +661,7 @@
bool>::type
intersects(const Type& left, const AssociateT& right)
{
- return itl::contains(left, right);
+ return itl::contains(left, right);
}
template<class Type, class AssociateT>
@@ -783,10 +783,10 @@
typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
flip(ObjectT& object, const typename ObjectT::domain_type& operand)
{
- if(itl::contains(object, operand))
- return object -= operand;
- else
- return object += operand;
+ if(itl::contains(object, operand))
+ return object -= operand;
+ else
+ return object += operand;
}
//JODO MEMO: This did not compile, no idea why.
@@ -800,14 +800,14 @@
typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
flip(ObjectT& object, const typename ObjectT::segment_type& segment)
{
- typedef typename ObjectT::const_iterator const_iterator;
- typedef typename ObjectT::interval_type interval_type;
+ typedef typename ObjectT::const_iterator const_iterator;
+ typedef typename ObjectT::interval_type interval_type;
// That which is common shall be subtracted
// That which is not shall be added
// So x has to be 'complementary added' or flipped
- interval_type span = segment;
- std::pair<const_iterator, const_iterator> exterior
- = object.equal_range(span);
+ interval_type span = segment;
+ std::pair<const_iterator, const_iterator> exterior
+ = object.equal_range(span);
const_iterator fst_ = exterior.first;
const_iterator end_ = exterior.second;
@@ -821,8 +821,8 @@
// [b ... : covered
//[a b) : left_over
left_over = right_subtract(span, covered);
- itl::subtract(object, span & covered); //That which is common shall be subtracted
- itl::add(object, left_over); //That which is not shall be added
+ itl::subtract(object, span & covered); //That which is common shall be subtracted
+ itl::add(object, left_over); //That which is not shall be added
//... d) : span
//... c) : covered
@@ -831,7 +831,7 @@
}
//If span is not empty here, it_ is not in the set so it_ shall be added
- itl::add(object, span);
+ itl::add(object, span);
return object;
}
@@ -840,7 +840,7 @@
typename enable_if<has_same_concept<is_interval_set, ObjectT, OperandT>, ObjectT>::type&
JODO_flip(ObjectT& object, const OperandT& operand)
{
- typedef typename OperandT::const_iterator const_iterator;
+ typedef typename OperandT::const_iterator const_iterator;
if(operand.empty())
return object;
@@ -854,7 +854,7 @@
// All elements of operand left of the common range are added
while(it_ != common_lwb)
- itl::add(object, *it_++);
+ itl::add(object, *it_++);
// All elements of operand in the common range are symmertrically subtracted
while(it_ != common_upb)
itl::flip(object, *it_++);
@@ -914,8 +914,8 @@
typename enable_if<is_interval_set<ObjectT>, ObjectT>::type&
join(ObjectT& object)
{
- typedef typename ObjectT::interval_type interval_type;
- typedef typename ObjectT::iterator iterator;
+ typedef typename ObjectT::interval_type interval_type;
+ typedef typename ObjectT::iterator iterator;
iterator it_ = object.begin();
if(it_ == object.end())
Modified: sandbox/itl/boost/itl/functions/associative_element_container.hpp
==============================================================================
--- sandbox/itl/boost/itl/functions/associative_element_container.hpp (original)
+++ sandbox/itl/boost/itl/functions/associative_element_container.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -60,7 +60,7 @@
super_ = super.find(SubT::key_value(sub_));
if(super_ == super.end())
return false;
- else if(!co_equal(sub_, super_, sub, super))
+ else if(!co_equal(sub_, super_, &sub, &super))
return false;
++sub_;
Modified: sandbox/itl/boost/itl/interval_base_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_map.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -283,15 +283,15 @@
/** Number of elements in the map (cardinality). */
size_type cardinality()const
- {
- return itl::cardinality(*that());
- }
+ {
+ return itl::cardinality(*that());
+ }
/** An interval map's size is it's cardinality */
size_type size()const
- {
- return itl::cardinality(*that());
- }
+ {
+ return itl::cardinality(*that());
+ }
/** The length of the interval container which is the sum of
interval lengths */
@@ -337,6 +337,8 @@
return _map.find(interval_type(key));
}
+ const_iterator find(const key_type& key)const{ return _map.find(key); }
+
/** Total select function. */
codomain_type operator()(const domain_type& key)const
{
@@ -414,6 +416,9 @@
//= Insertion
//==========================================================================
+ std::pair<iterator,bool> _insert(const value_type& value_pair){ return _map.insert(value_pair); }
+ iterator _insert(iterator prior, const value_type& value_pair){ return _map.insert(prior, value_pair); }
+
/** Insertion of a \c key_value_pair into the map. */
SubType& insert(const element_type& key_value_pair)
{
@@ -828,10 +833,7 @@
BOOST_ASSERT(this->_map.find(inter_val) == this->_map.end());
BOOST_ASSERT(!(Traits::absorbs_neutrons && co_val==Combiner::neutron()));
- if(mpl::and_<has_inverse<codomain_type>, is_negative<Combiner> >::value)
- return this->_map.insert(prior_, value_type(inter_val, version<Combiner>()(co_val)));
- else
- return this->_map.insert(prior_, value_type(inter_val, co_val));
+ return this->_map.insert(prior_, value_type(inter_val, version<Combiner>()(co_val)));
}
protected:
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-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -287,28 +287,28 @@
//==========================================================================
/** sets the container empty */
- void clear() { itl::clear(*that()); }
+ void clear() { itl::clear(*that()); }
/** is the container empty? */
- bool empty()const { return itl::is_empty(*that()); }
+ bool empty()const { return itl::is_empty(*that()); }
/** Does the container contain the element \c key ? */
bool contains(const element_type& key)const
- {
- return itl::contains(*that(), key);
- }
+ {
+ return itl::contains(*that(), key);
+ }
/** Does the container contain the interval \c sub_interval ? */
bool contains(const segment_type& sub_interval)const
{
- return itl::contains(*that(), sub_interval);
+ return itl::contains(*that(), sub_interval);
}
/** Does the container contain the subcontainer \c sub ? */
bool contains(const interval_base_set& sub)const
- {
- return itl::within(sub, *that());
- }
+ {
+ return itl::within(sub, *that());
+ }
/** Does <tt>*this</tt> container contain <tt>sub</tt>? */
template
@@ -319,8 +319,8 @@
>
bool contains(const IntervalSet<DomainT,Compare,Interval,Alloc>& sub)const
{
- return itl::within(sub,*that());
- }
+ return itl::within(sub,*that());
+ }
/** Is <tt>*this</tt> container contained in <tt>super</tt>? */
template
@@ -341,39 +341,39 @@
/** Number of elements in the set (cardinality).
Infinite for continuous domain datatyps */
size_type cardinality()const
- {
- return itl::cardinality(*that());
- }
+ {
+ return itl::cardinality(*that());
+ }
/** An interval set's size is it's cardinality */
size_type size()const
- {
- return itl::cardinality(*that());
- }
+ {
+ return itl::cardinality(*that());
+ }
/** The length of the interval container which is the sum of interval lengths */
difference_type length()const
- {
- return itl::length(*that());
- }
+ {
+ return itl::length(*that());
+ }
/** Number of intervals which is also the size of the iteration over the object */
std::size_t interval_count()const
- {
- return itl::interval_count(*that());
- }
+ {
+ return itl::interval_count(*that());
+ }
/** Size of the iteration over this container */
std::size_t iterative_size()const
- {
- return _set.size();
- }
+ {
+ return _set.size();
+ }
//==========================================================================
//= Range
//==========================================================================
- //JODO remove lower, upper, first, last from the interface of all interval containers and docs
+ //JODO remove lower, upper, first, last from the interface of all interval containers and docs
//==========================================================================
//= Selection
@@ -397,22 +397,22 @@
/** Add a single element \c key to the set */
SubType& add(const element_type& key)
{
- return itl::add(*that(), key);
- }
+ return itl::add(*that(), key);
+ }
/** Add an interval of elements \c inter_val to the set */
SubType& add(const segment_type& inter_val)
{
- return itl::add(*that(), inter_val);
- }
+ return itl::add(*that(), inter_val);
+ }
/** Add an interval of elements \c inter_val to the set. Iterator
\c prior_ is a hint to the position \c inter_val can be
inserted after. */
iterator add(iterator prior_, const segment_type& inter_val)
{
- return itl::add(*that(), prior_, inter_val);
- }
+ return itl::add(*that(), prior_, inter_val);
+ }
//==========================================================================
//= Subtraction
@@ -421,68 +421,68 @@
/** Subtract a single element \c key from the set */
SubType& subtract(const element_type& key)
{
- return itl::subtract(*that(), key);
- }
+ return itl::subtract(*that(), key);
+ }
/** Subtract an interval of elements \c inter_val from the set */
SubType& subtract(const segment_type& inter_val)
{
- return itl::subtract(*that(), inter_val);
- }
+ return itl::subtract(*that(), inter_val);
+ }
//==========================================================================
//= Insertion, erasure
//==========================================================================
- std::pair<iterator,bool> _insert(const value_type& value){ return this->_set.insert(value); }
- iterator _insert(iterator prior, const value_type& value){ return this->_set.insert(prior, value); }
+ std::pair<iterator,bool> _insert(const value_type& value){ return this->_set.insert(value); }
+ iterator _insert(iterator prior, const value_type& value){ return this->_set.insert(prior, value); }
/** Insert an element \c key into the set */
SubType& insert(const element_type& key)
- {
- return itl::add(*that(), key);
- }
+ {
+ return itl::add(*that(), key);
+ }
/** Insert an interval of elements \c inter_val to the set */
SubType& insert(const segment_type& inter_val)
- {
- return itl::add(*that(), inter_val);
- }
+ {
+ return itl::add(*that(), inter_val);
+ }
/** Insert an interval of elements \c inter_val to the set. Iterator
\c prior_ is a hint to the position \c inter_val can be
inserted after. */
iterator insert(iterator prior_, const segment_type& inter_val)
{
- return itl::add(*that(), prior_, inter_val);
- }
+ return itl::add(*that(), prior_, inter_val);
+ }
/** Erase an element \c key from the set */
SubType& erase(const element_type& key)
{
- return itl::subtract(*that(), key);
- }
+ return itl::subtract(*that(), key);
+ }
/** Erase an interval of elements \c inter_val from the set */
SubType& erase(const segment_type& inter_val)
{
- return itl::subtract(*that(), inter_val);
- }
+ return itl::subtract(*that(), inter_val);
+ }
/** Erase the interval that iterator \c position points to. */
void erase(iterator position)
- {
- _set.erase(position);
- }
+ {
+ _set.erase(position);
+ }
/** Erase all intervals in the range <tt>[first,past)</tt> of iterators. */
void erase(iterator first, iterator past)
- {
- _set.erase(first, past);
- }
+ {
+ _set.erase(first, past);
+ }
//==========================================================================
@@ -493,14 +493,14 @@
The function can be used as a find function. */
void add_intersection(SubType& section, const element_type& key)const
{
- itl::add_intersection(section, *that(), key);
- }
+ itl::add_intersection(section, *that(), key);
+ }
/** The intersection of \c inter_val in \c *this set is added to \c section. */
void add_intersection(SubType& section, const segment_type& inter_val)const
{
- itl::add_intersection(section, *that(), inter_val);
- }
+ itl::add_intersection(section, *that(), inter_val);
+ }
/** The intersection of set \c sectant with \c *this set is added to \c section. */
@@ -515,24 +515,24 @@
SubType& section,
const IntervalSet<DomainT,Compare,Interval,Alloc>& operand
)const
- {
- itl::add_intersection(section, *that(), operand);
- }
+ {
+ itl::add_intersection(section, *that(), operand);
+ }
/** Returns \c true, if element \c key is found in \c *this map.
Complexity: logarithmic. */
bool intersects(const element_type& key)const
{
- return itl::intersects(*that(), key);
- }
+ return itl::intersects(*that(), key);
+ }
/** Returns \c true, if \c inter_val intersects with \c *this map.
Complexity: logarithmic. */
bool intersects(const interval_type& inter_val)const
{
- return itl::intersects(*that(), inter_val);
- }
+ return itl::intersects(*that(), inter_val);
+ }
//==========================================================================
//= Symmetric difference
@@ -541,22 +541,22 @@
/** If \c *this set contains \c key it is erased, otherwise it is added. */
SubType& flip(const element_type& key)
{
- return itl::flip(*that(), key);
- }
+ return itl::flip(*that(), key);
+ }
/** If \c *this set contains \c inter_val it is erased, otherwise it is added. */
SubType& flip(const segment_type& inter_val)
{
- return itl::flip(*that(), inter_val);
- }
+ return itl::flip(*that(), inter_val);
+ }
/** The intersection of \c *this and \c operand is erased from \c *this.
The complemenary elements are added to \c *this. */
template<class SubType2>
SubType& flip(const interval_base_set<SubType2,DomainT,Compare,Interval,Alloc>& operand)
- {
- return itl::JODO_flip(*that(), operand); //JODO remove this
- }
+ {
+ return itl::JODO_flip(*that(), operand); //JODO remove this
+ }
//==========================================================================
//= Iterator related
@@ -609,9 +609,9 @@
/** Join bordering intervals */
SubType& join()
- {
- return itl::join(*that());
- }
+ {
+ return itl::join(*that());
+ }
/** Set interval bounds to the type <tt>bt</tt> for intervals in the set.
Interval bounds of different types are created by opeations on
Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -146,13 +146,6 @@
&& !(Traits::absorbs_neutrons && value.second == codomain_combine::neutron());
}
- iterator join_left(iterator& it_);
- iterator join_right(iterator& it_);
- iterator join_neighbours(iterator& it_){ join_left(it_); return join_right(it_); };
- bool joinable(const iterator& some, const iterator& next)const;
- iterator join_on_left(iterator& some, const iterator& next);
- iterator join_on_right(const iterator& some, iterator& next);
-
template<class Combiner>
void add_main(interval_type& inter_val, const CodomainT& co_val,
iterator& it_, const iterator& last_);
@@ -163,9 +156,6 @@
void add_front(const interval_type& inter_val, iterator& first_);
template<class Combiner>
- void add_segment(const interval_type& inter_val, const CodomainT& co_val, iterator& it_);
-
- template<class Combiner>
void subtract_main(const CodomainT& co_val, iterator& it_, iterator& end_ );
void subtract_front(const interval_type& inter_val, const CodomainT& co_val, iterator& it_);
@@ -179,86 +169,6 @@
} ;
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
-inline bool interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::joinable(const iterator& some, const iterator& next)const
-{
- // assert: next != end && some++ == next
- return touches(some->first, next->first)
- && some->second == next->second;
-}
-
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
-inline typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
- interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::join_on_left(iterator& left_, const iterator& right_)
-{
- // both left and right are in the map and they are neighbours
- BOOST_ASSERT(joinable(left_, right_));
-
- interval_type right_interval = right_->first;
- this->_map.erase(right_);
- const_cast<interval_type&>(left_->first) = hull(left_->first, right_interval);
-
- return left_;
-}
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
-inline typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
- interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::join_on_right(const iterator& left_, iterator& right_)
-{
- // both left and right are in the map and they are neighbours
- BOOST_ASSERT(joinable(left_, right_));
-
- interval_type right_interval = right_->first;
- this->_map.erase(right_);
- const_cast<interval_type&>(left_->first) = hull(left_->first, right_interval);
- right_ = left_;
-
- return right_;
-}
-
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
-inline typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
- interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::join_left(iterator& it_)
-{
- if(it_ == this->_map.begin())
- return it_;
-
- // there is a predecessor
- iterator pred_ = it_;
- if(joinable(--pred_, it_))
- return join_on_right(pred_, it_);
-
- return it_;
-}
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
-inline typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
- interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::join_right(iterator& it_)
-{
- if(it_ == this->_map.end())
- return it_;
-
- // there is a successor
- iterator succ_ = it_;
-
- if(++succ_ != this->_map.end() && joinable(it_, succ_))
- return join_on_left(it_, succ_);
-
- return it_;
-}
-
//-----------------------------------------------------------------------------
// add<Combinator>(pair(interval,value)):
@@ -280,7 +190,7 @@
= this->template _map_insert<Combiner>(inter_val, co_val);
if(insertion.second)
- join_neighbours(insertion.first);
+ detail::join_neighbours(*this, insertion.first);
else
{
// Detect the first and the end iterator of the collision sequence
@@ -316,7 +226,7 @@
= this->template _map_add<Combiner>(prior_, inter_val, co_val);
if(insertion.second)
- return join_neighbours(insertion.first);
+ return detail::join_neighbours(*this, insertion.first);
else
{
// Detect the first and the end iterator of the collision sequence
@@ -370,7 +280,7 @@
while(it_!=last_)
{
cur_interval = it_->first ;
- add_segment<Combiner>(x_rest, co_val, it_);
+ detail::add_segment<type,Combiner>(*this, x_rest, co_val, it_);
// shrink interval
x_rest = left_subtract(x_rest, cur_interval);
}
@@ -380,36 +290,6 @@
template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
template<class Combiner>
inline void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::add_segment(const interval_type& inter_val, const CodomainT& co_val, iterator& it_)
-{
- interval_type lead_gap = right_subtract(inter_val, it_->first);
- if(!itl::is_empty(lead_gap))
- {
- // [lead_gap--- . . .
- // [-- it_ ...
- iterator prior_ = prior(it_);
- iterator inserted_ = this->template gap_insert<Combiner>(prior_, lead_gap, co_val);
- if(prior_ != this->_map.end() && joinable(prior_, inserted_))
- join_on_right(prior_, inserted_);
- }
-
- // . . . --------- . . . addend interval
- // [-- it_ --) has a common part with the first overval
- Combiner()(it_->second, co_val);
- if(Traits::absorbs_neutrons && it_->second == Combiner::neutron())
- this->_map.erase(it_++);
- else
- {
- join_left(it_);
- ++it_;
- }
-}
-
-
-
-template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
- template<class Combiner>
-inline void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_rear(const interval_type& inter_val, const CodomainT& co_val, iterator& it_)
{
iterator prior_ = this->prior(it_);
@@ -420,8 +300,8 @@
{ // [lead_gap--- . . .
// [prior) [-- it_ ...
iterator inserted_ = this->template gap_insert<Combiner>(prior_, lead_gap, co_val);
- if(prior_ != this->_map.end() && joinable(prior_, inserted_))
- join_on_left(prior_, inserted_);
+ if(prior_ != this->_map.end() && detail::joinable(*this, prior_, inserted_))
+ detail::join_on_left(*this, prior_, inserted_);
}
interval_type end_gap = left_subtract(inter_val, cur_itv);
@@ -435,13 +315,13 @@
{
this->_map.erase(it_);
it_ = this->template gap_insert<Combiner>(prior_, end_gap, co_val);
- join_right(it_);
+ detail::join_right(*this, it_);
}
else
{
- join_left(it_);
+ detail::join_left(*this, it_);
iterator inserted_ = this->template gap_insert<Combiner>(it_, end_gap, co_val);
- it_ = join_neighbours(inserted_);
+ it_ = detail::join_neighbours(*this, inserted_);
}
}
else
@@ -461,7 +341,7 @@
it_ = prior_;
}
else
- join_neighbours(it_);
+ detail::join_neighbours(*this, it_);
}
else
{
@@ -473,7 +353,7 @@
// the Combiner functor. It only reestablished that state after splitting the
// 'it_' interval value pair. Using _map_insert<Combiner> does not work here.
iterator insertion_ = this->_map.insert(it_, value_type(right_resid, it_->second));
- join_right(insertion_);
+ detail::join_right(*this, insertion_);
Combiner()(it_->second, co_val);
@@ -483,7 +363,7 @@
it_ = insertion_;
}
else
- join_neighbours(it_);
+ detail::join_neighbours(*this, it_);
}
}
}
@@ -550,7 +430,7 @@
this->_map.erase(it_++);
else
{
- join_left(it_);
+ detail::join_left(*this, it_);
++it_;
}
}
@@ -571,7 +451,7 @@
if(Traits::absorbs_neutrons && cur_val==Combiner::neutron())
this->_map.erase(it_);
else
- join_neighbours(it_);
+ detail::join_neighbours(*this, it_);
}
else
{
@@ -581,12 +461,12 @@
if(Traits::absorbs_neutrons && it_->second==Combiner::neutron())
{
this->_map.erase(it_);
- join_right(next_);
+ detail::join_right(*this, next_);
}
else
{
- join_left(it_);
- join_neighbours(next_);
+ detail::join_left(*this, it_);
+ detail::join_neighbours(*this, next_);
}
}
}
@@ -611,7 +491,7 @@
std::pair<iterator,bool> insertion = this->_map.insert(addend);
if(insertion.second)
- join_neighbours(insertion.first);
+ detail::join_neighbours(*this, insertion.first);
else
{
// Detect the first and the end iterator of the collision sequence
@@ -641,7 +521,7 @@
= this->template _map_insert<codomain_combine>(prior_, inter_val, co_val);
if(insertion.second)
- return join_neighbours(insertion.first);
+ return detail::join_neighbours(*this, insertion.first);
{
// Detect the first and the end iterator of the collision sequence
std::pair<iterator,iterator> overlap = this->_map.equal_range(inter_val);
@@ -674,9 +554,9 @@
if(!itl::is_empty(left_gap))
{
inserted_ = this->_map.insert(prior_, value_type(left_gap, co_val));
- join_left(inserted_);
+ detail::join_left(*this, inserted_);
// after filling that gap there may be another joining opportunity
- join_left(it_);
+ detail::join_left(*this, it_);
}
// shrink interval
@@ -690,7 +570,7 @@
if(!itl::is_empty(end_gap))
{
inserted_ = this->_map.insert(prior_, value_type(end_gap, co_val));
- it_ = join_neighbours(inserted_);
+ it_ = detail::join_neighbours(*this, inserted_);
}
else
it_ = prior_;
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-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -138,8 +138,8 @@
prior_ = this->add(prior_, *it_);
}
- //std::pair<iterator,bool> _insert(const value_type& value){ return this->_set.insert(value); }
- //iterator _insert(iterator prior, const value_type& value){ return this->_set.insert(prior, value); }
+ //std::pair<iterator,bool> _insert(const value_type& value){ return this->_set.insert(value); }
+ //iterator _insert(iterator prior, const value_type& value){ return this->_set.insert(prior, value); }
private:
friend class
@@ -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)
{
- detail::joining_add(*this, addend);
+ detail::joining_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 detail::joining_add(*this, prior_, addend);
+ return detail::joining_add(*this, prior_, addend);
}
@@ -179,7 +179,7 @@
template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
void interval_set<DomainT,Compare,Interval,Alloc>::subtract_(const value_type& minuend)
{
- detail::subtract(*this, minuend);
+ detail::subtract(*this, minuend);
}
Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -324,7 +324,7 @@
map& flip(const element_type& operand)
{
- return itl::flip(*this, operand);
+ return itl::flip(*this, operand);
}
//==========================================================================
Modified: sandbox/itl/boost/itl/map_functions.hpp
==============================================================================
--- sandbox/itl/boost/itl/map_functions.hpp (original)
+++ sandbox/itl/boost/itl/map_functions.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -39,7 +39,7 @@
typename enable_if<is_element_map<MapT>, bool>::type
contains(const MapT& super, const typename MapT::element_type& value_pair)
{
- return itl::within(value_pair, super);
+ return itl::within(value_pair, super);
}
@@ -505,7 +505,7 @@
inline typename enable_if<is_element_map<MapT>, MapT>::type&
absorb_neutrons(MapT& object)
{
- BOOST_STATIC_CONSTANT(bool, absorbs = MapT::Traits::absorbs_neutrons);
+ BOOST_STATIC_CONSTANT(bool, absorbs = MapT::Traits::absorbs_neutrons);
return map_absorb_neutrons<MapT,absorbs>::apply(object);
}
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-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -148,21 +148,21 @@
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)
{
- detail::separating_add(*this, addend);
+ detail::separating_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 detail::separating_add(*this, prior_, addend);
+ return detail::separating_add(*this, prior_, addend);
}
template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
inline void separate_interval_set<DomainT,Compare,Interval,Alloc>::subtract_(const value_type& minuend)
{
- detail::subtract(*this, minuend);
+ detail::subtract(*this, minuend);
}
//-----------------------------------------------------------------------------
Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2010-09-03 12:27:04 EDT (Fri, 03 Sep 2010)
@@ -51,7 +51,7 @@
public:
typedef typename itl::set<DomainT, Compare, Alloc> type;
typedef typename ITL_IMPL_SPACE::set<DomainT, ITL_COMPARE_DOMAIN(Compare,DomainT), Alloc<DomainT> > base_type;
- typedef type key_object_type;
+ typedef type key_object_type;
public:
typedef DomainT domain_type;
@@ -150,11 +150,11 @@
/// Checks if the element \c value is in the set
bool contains(const element_type& value)const
- { return itl::contains(*this, value); }
+ { return itl::contains(*this, value); }
/** Does <tt>*this</tt> contain <tt>sub</tt>? */
bool contains(const set& sub)const
- { return itl::contains(*this, sub); }
+ { return itl::contains(*this, sub); }
/** Is <tt>*this</tt> contained in <tt>super</tt>? */
bool contained_in(const set& super)const
@@ -162,7 +162,7 @@
/** <tt>*this</tt> and <tt>x2</tt> are disjoint, if their intersection is empty */
bool disjoint(const set& x2)const
- { return itl::disjoint(*this, x2); }
+ { return itl::disjoint(*this, x2); }
//==========================================================================
//= Size
@@ -179,21 +179,21 @@
//==========================================================================
/** Add an \c element to the set. */
set& add(const element_type& element)
- { return itl::insert(*this, element); }
+ { return itl::insert(*this, element); }
/** Add an element \c element after \c prior to the set. */
iterator add(iterator prior, const element_type& element)
- { return itl::insert(*this, prior, element); }
+ { return itl::insert(*this, prior, element); }
/** Subtract an \c element from the set. */
set& subtract(const element_type& element)
- { return itl::subtract(*this, element); }
+ { return itl::subtract(*this, element); }
//==========================================================================
//= Insertion, erasure
//==========================================================================
- //JODO
+ //JODO
//==========================================================================
//= Intersection, symmetric difference
@@ -201,12 +201,12 @@
/** Add \c element to \c section, if \c element is in \c *this set */
void add_intersection(set& section, const element_type& element)const
- { itl::add_intersection(section, *this, element); }
+ { itl::add_intersection(section, *this, element); }
/** The intersection of set \c sectant with \c *this set is added
to \c section. */
void add_intersection(set& section, const set& sectant)const
- { itl::add_intersection(section, *this, sectant); }
+ { itl::add_intersection(section, *this, sectant); }
/** Returns true, if there is an intersection of \c element and \c *this set.
Functions \c intersects and \c contains are identical on arguments
@@ -215,7 +215,7 @@
/** If \c *this set contains \c element it is erased, otherwise it is added. */
set& flip(const element_type& element)
- { return itl::flip(*this, element); }
+ { return itl::flip(*this, element); }
//==========================================================================
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-03 12:27:04 EDT (Fri, 03 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)
{
- detail::splitting_add(*this, addend);
+ detail::splitting_add(*this, addend);
}
@@ -157,13 +157,13 @@
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 detail::splitting_add(*this, prior_, addend);
+ return detail::splitting_add(*this, prior_, addend);
}
template<class DomainT, ITL_COMPARE Compare, ITL_INTERVAL(ITL_COMPARE) Interval, ITL_ALLOC Alloc>
inline void split_interval_set<DomainT,Compare,Interval,Alloc>::subtract_(const value_type& minuend)
{
- detail::subtract(*this, minuend);
+ detail::subtract(*this, minuend);
}
//-----------------------------------------------------------------------------
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