Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54335 - in sandbox/itl: boost/itl boost/validate/driver libs/itl/test/test_itl_interval
From: afojgo_at_[hidden]
Date: 2009-06-25 11:54:54


Author: jofaber
Date: 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
New Revision: 54335
URL: http://svn.boost.org/trac/boost/changeset/54335

Log:
Refactoring: interval_base_map::erase. Stable {msvc-9.0 r+d, gcc-3.4.4}
Text files modified:
   sandbox/itl/boost/itl/interval.hpp | 72 +++++++++++------------
   sandbox/itl/boost/itl/interval_base_map.hpp | 72 ++++++++++++++---------
   sandbox/itl/boost/itl/interval_base_set.hpp | 2
   sandbox/itl/boost/itl/interval_map.hpp | 2
   sandbox/itl/boost/itl/split_interval_map.hpp | 118 +++++++--------------------------------
   sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp | 42 +++++++-------
   sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp | 2
   7 files changed, 124 insertions(+), 186 deletions(-)

Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -218,47 +218,25 @@
     //= Subtraction
     //==========================================================================
 
- /** subtract \c x2 from \c *this interval on it's left side. Assign the difference
- to \c right_over. The result \c right_over is the part of \c *this right of \c x2.
+ /** subtract \c left_minuend from \c *this interval on it's left side.
 \code
-right_over = x1 - x2; //on the left.
-... d) : x1
-... c) : x2; x1.left_subtract(right_over, x2);
- [c d) : right_over
-\endcode
- */
- void left_subtract(interval& right_over, const interval& x2)const;
-
- /** subtract \c x2 from \c *this interval on it's right side. Assign the difference
- to \c left_over. The result \c left_over is the part of \c *this left of \c x2.
-\code
-left_over = x1 - x2; //on the right side.
-[a ... : x1
- [b ... : x2; x1.right_subtract(left_over, x2);
-[a b) : left_over
-\endcode
- */
- void right_subtract(interval& left_over, const interval& x2)const;
-
- /** subtract \c x2 from \c *this interval on it's left side.
-\code
-*this = *this - x2; //on the left.
+*this = *this - left_minuend; //on the left.
 ... d) : *this
-... c) : x2;
+... c) : left_minuend
      [c d) : *this
 \endcode
     */
- interval& left_subtract(const interval& x2);
+ interval& left_subtract(const interval& left_minuend);
 
- /** subtract \c x2 from \c *this interval on it's right side.
+ /** subtract \c right_minuend from \c *this interval on it's right side.
 \code
-*this = *this - x2; //on the right side.
+*this = *this - right_minuend; //on the right side.
 [a ... : *this
- [b ... : x2;
+ [b ... : right_minuend
 [a b) : *this
 \endcode
     */
- interval& right_subtract(const interval& x2);
+ interval& right_subtract(const interval& right_minuend);
 
     //==========================================================================
     //= Intersection
@@ -882,6 +860,7 @@
     return *this;
 }
 
+/*CL
 template <class DomainT, ITL_COMPARE Compare>
 void interval<DomainT,Compare>::right_subtract(interval<DomainT,Compare>& lsur, const interval<DomainT,Compare>& x2)const
 {
@@ -907,7 +886,7 @@
     }
     else rsur.clear();
 }
-
+*/
 
 template <class DomainT, ITL_COMPARE Compare>
 const std::string interval<DomainT,Compare>::as_string()const
@@ -1022,18 +1001,37 @@
 //==============================================================================
 //= Subtraction
 //==============================================================================
+
+/** subtract \c right_minuend from the \c left interval on it's right side.
+ Return the difference: The part of \c left right of \c x2.
+\code
+left_over = left - right_minuend; //on the right side.
+[a ... : left
+ [b ... : right_minuend
+[a b) : left_over
+\endcode
+*/
 template <class DomainT, ITL_COMPARE Compare>
-interval<DomainT,Compare> right_subtract(interval<DomainT,Compare> left,
- const interval<DomainT,Compare>& right_subtrahend)
+inline interval<DomainT,Compare> right_subtract(interval<DomainT,Compare> left,
+ const interval<DomainT,Compare>& right_minuend)
 {
- return left.right_subtract(right_subtrahend);
+ return left.right_subtract(right_minuend);
 }
 
+/** subtract \c left_minuend from the \c right interval on it's left side.
+ Return the difference: The part of \c right right of \c left_minuend.
+\code
+right_over = right - left_minuend; //on the left.
+... d) : right
+... c) : left_minuend
+ [c d) : right_over
+\endcode
+*/
 template <class DomainT, ITL_COMPARE Compare>
-interval<DomainT,Compare> left_subtract(interval<DomainT,Compare> right,
- const interval<DomainT,Compare>& left_subtrahend)
+inline interval<DomainT,Compare> left_subtract(interval<DomainT,Compare> right,
+ const interval<DomainT,Compare>& left_minuend)
 {
- return right.left_subtract(left_subtrahend);
+ return right.left_subtract(left_minuend);
 }
 
 // ----------------------------------------------------------------------------

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 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -881,7 +881,7 @@
         //[a ... : span
         // [b ... : covered
         //[a b) : left_over
- span.right_subtract(left_over, covered);
+ left_over = right_subtract(span, covered);
 
         //That which is common ...
         common_interval = span & covered;
@@ -1073,40 +1073,56 @@
     FOR_IMPLMAP(it) const_cast<interval_type&>((*it).KEY_VALUE).as(bounded);
 }
 
+
 template
 <
     class SubType,
     class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-SubType& interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::erase(const interval_type& x_itv)
+inline SubType& interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
+ ::erase(const interval_type& minuend)
 {
- if(x_itv.empty()) return *that();
- iterator fst_it = _map.lower_bound(x_itv);
- if(fst_it==_map.end()) return *that();
- iterator end_it = _map.upper_bound(x_itv);
-
- typename ImplMapT::iterator it=fst_it, nxt_it=fst_it, victim;
- interval_type leftResid; // left residual from first overlapping interval of *this
- (*it).KEY_VALUE.right_subtract(leftResid,x_itv);
- interval_type rightResid; // right residual from last overlapping interval of *this
-
- CodomainT leftResid_ContVal = (*it).CONT_VALUE;
- CodomainT rightResid_ContVal;
-
- while(it!=end_it)
- {
- if((++nxt_it)==end_it)
- {
- (*it).KEY_VALUE.left_subtract(rightResid,x_itv);
- rightResid_ContVal = (*it).CONT_VALUE;
- }
- victim = it; it++; _map.erase(victim);
- }
-
- add(value_type(leftResid, leftResid_ContVal));
- add(value_type(rightResid, rightResid_ContVal));
+ if(minuend.empty())
+ return *that();
 
+ iterator fst_it = _map.lower_bound(minuend);
+ if(fst_it==_map.end())
+ return *that();
+ iterator end_it = _map.upper_bound(minuend);
+ if(fst_it==end_it)
+ return *that();
+
+ iterator lst_it = end_it; --lst_it;
+
+ interval_type left_resid = right_subtract(fst_it->KEY_VALUE, minuend);
+ interval_type right_resid = left_subtract(lst_it->KEY_VALUE, minuend);
+
+ if(fst_it == lst_it)
+ if(!left_resid.empty())
+ {
+ const_cast<interval_type&>(fst_it->KEY_VALUE).right_subtract(minuend);
+ if(!right_resid.empty())
+ this->_map.insert(fst_it, value_type(right_resid, fst_it->CONT_VALUE));
+ }
+ else if(!right_resid.empty())
+ const_cast<interval_type&>(fst_it->KEY_VALUE).left_subtract(minuend);
+ else
+ this->_map.erase(fst_it);
+ else
+ { // [-------- minuend ---------)
+ // [left_resid fst) . . . . [lst right_resid)
+ iterator snd_it = fst_it; ++snd_it;
+
+ iterator start_ = left_resid.empty()? fst_it: snd_it;
+ iterator stop_ = right_resid.empty()? end_it: lst_it;
+ this->_map.erase(start_, stop_); //erase [start_, stop_)
+
+ if(!left_resid.empty())
+ const_cast<interval_type&>(fst_it->KEY_VALUE).right_subtract(minuend);
+
+ if(!right_resid.empty())
+ const_cast<interval_type&>(lst_it->KEY_VALUE).left_subtract(minuend);
+ }
     return *that();
 }
 

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 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -523,7 +523,7 @@
         //[a ... : span
         // [b ... : covered
         //[a b) : left_over
- span.right_subtract(left_over, covered);
+ left_over = right_subtract(span, covered);
         subtract(span & covered); //That which is common shall be subtracted
         add(left_over); //That which is not shall be added
 

Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -674,7 +674,7 @@
     if(fst_it == lst_it)
     {
         // only for the last there can be a right_resid: a part of *it right of minuend
- interval_type right_resid; (*fst_it).KEY_VALUE.left_subtract(right_resid, inter_val);
+ interval_type right_resid = left_subtract(fst_it->KEY_VALUE, inter_val);
 
         if(fst_it->CONT_VALUE == co_val)
         {

Modified: sandbox/itl/boost/itl/split_interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_map.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_map.hpp 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -118,7 +118,7 @@
         <split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
                             DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc >;
 
- bool contains_(const value_type& x)const;
+ bool contains_(const value_type& value)const;
 
     template<class Combiner>
     void add_(const value_type&);
@@ -132,40 +132,29 @@
 private:
     void handle_neighbours(const iterator& it){}
     
- void fill(const value_type&);
- iterator fill(iterator&, const interval_type&, const codomain_type&);
-
- template<class Combiner>
- void fill_gap(const value_type&);
-
     template<class Combiner>
- void fill_gap(iterator& prior_, const interval_type&, const CodomainT&);
-
- template<class Combiner>
- void add_main(interval_type& x_itv, const CodomainT& x_val,
+ void add_main(interval_type& inter_val, const CodomainT& co_val,
                  iterator& it, const iterator& end_it);
     template<class Combiner>
- void add_segment(const interval_type& x_itv, const CodomainT& x_val,
+ void add_segment(const interval_type& inter_val, const CodomainT& co_val,
                      iterator& it);
 
- void add_front(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
+ void add_front(const interval_type& inter_val, const CodomainT& co_val, iterator& it);
 
     template<class Combiner>
- void add_rear(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
+ void add_rear(const interval_type& inter_val, const CodomainT& co_val, iterator& it);
 
     template<class Combiner>
- void subtract_main(const interval_type& x_itv, const CodomainT& x_val,
+ void subtract_main(const interval_type& inter_val, const CodomainT& co_val,
                        iterator& it, iterator& end_it);
 
- void subtract_front(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
+ void subtract_front(const interval_type& inter_val, const CodomainT& co_val, iterator& it);
 
     template<class Combiner>
- void subtract_rear(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
-
- void insert_range(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it);
- //CL void insert_rear(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
+ void subtract_rear(const interval_type& inter_val, const CodomainT& co_val, iterator& it);
 
- void erase_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& lst_it);
+ void insert_range(const interval_type& inter_val, const CodomainT& co_val, iterator& it, iterator& end_it);
+ void erase_rest(const interval_type& inter_val, const CodomainT& co_val, iterator& it, iterator& lst_it);
 } ;
 
 
@@ -182,82 +171,19 @@
     return is_element_equal(section, type(interv_value));
 }
 
-
-
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::fill(const value_type& value)
-{
- //collision free insert is asserted
- if(value.KEY_VALUE.empty())
- return;
- if(Traits::absorbs_neutrons && value.CONT_VALUE == codomain_combine::neutron())
- return;
- this->_map.insert(value);
-}
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
-typename split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
- split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::fill(iterator& prior_, const interval_type& inter_val, const codomain_type& co_val)
-{
- //collision free insert is asserted
- if(inter_val.empty())
- return this->_map.end();
- if(Traits::absorbs_neutrons && co_val == codomain_combine::neutron())
- return this->_map.end();
-
- return this->_map.insert(prior_, value_type(inter_val, co_val));
-}
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
- template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::fill_gap(const value_type& value)
-{
- //collision free insert is asserted
- if(value.KEY_VALUE.empty())
- return;
- if(Traits::absorbs_neutrons && value.CONT_VALUE == Combiner::neutron())
- return;
-
- this->template map_insert<Combiner>(value.KEY_VALUE, value.CONT_VALUE);
-}
-
-template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
- template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::fill_gap(iterator& prior_, const interval_type& inter_val, const codomain_type& co_val)
-{
- //collision free insert is asserted
- if(inter_val.empty())
- return;
- if(Traits::absorbs_neutrons && co_val == Combiner::neutron())
- return;
-
- this->template map_insert<Combiner>(prior_, inter_val, co_val);
-}
-
-
-
 //-----------------------------------------------------------------------------
 // add<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
     template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
- ::add_(const value_type& x)
+inline void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
+ ::add_(const value_type& addend)
 {
- const interval_type& inter_val = x.KEY_VALUE;
+ const interval_type& inter_val = addend.KEY_VALUE;
     if(inter_val.empty())
         return;
 
- const CodomainT& co_val = x.CONT_VALUE;
+ const CodomainT& co_val = addend.CONT_VALUE;
     if(Traits::absorbs_neutrons && co_val==Combiner::neutron())
         return;
 
@@ -379,13 +305,11 @@
                         iterator inserted_ = this->template map_insert<Combiner>(prior_, end_gap, co_val);
                 }
         else
- {
- fill_gap<Combiner>(it, end_gap, co_val);
- }
+ this->template map_insert<Combiner>(it, end_gap, co_val);
         }
         else
         {
- // only for the last there can be a right_resid: a part of *it right of x
+ // only for the last there can be a right_resid: a part of *it right of addend
                 interval_type right_resid = left_subtract(cur_itv, inter_val);
 
                 if(right_resid.empty())
@@ -424,7 +348,7 @@
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
     template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
+inline void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
     ::subtract_(const value_type& minuend)
 {
     interval_type inter_val = minuend.KEY_VALUE;
@@ -542,7 +466,7 @@
 
 template <typename DomainT, typename CodomainT, class Traits,
           ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
+inline void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
     ::insert_range(const interval_type& inter_val, const CodomainT& co_val, iterator& it, iterator& lst_it)
 {
         iterator end_it = lst_it; ++end_it;
@@ -577,7 +501,7 @@
 // erase(pair(interval,value)):
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
+inline void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
     ::erase_(const value_type& minuend)
 {
     interval_type inter_val = minuend.KEY_VALUE;
@@ -597,11 +521,11 @@
 
         iterator lst_it = end_it; --lst_it;
 
- iterator snd_it = fst_it; snd_it++;
+ iterator snd_it = fst_it; ++snd_it;
     if(fst_it == lst_it)
     {
         // only for the last there can be a right_resid: a part of *it right of minuend
- interval_type right_resid; (*fst_it).KEY_VALUE.left_subtract(right_resid, inter_val);
+ interval_type right_resid = left_subtract(fst_it->KEY_VALUE, inter_val);
 
         if(fst_it->CONT_VALUE == co_val)
         {

Modified: sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -33,9 +33,9 @@
             _rootChoice[RootType::interval_set] = 0;
             _rootChoice[RootType::separate_interval_set] = 0;
             _rootChoice[RootType::split_interval_set] = 0;
- _rootChoice[RootType::itl_map] = 33;
- _rootChoice[RootType::interval_map] = 33;
- _rootChoice[RootType::split_interval_map] = 34;
+ _rootChoice[RootType::itl_map] = 0;//33;
+ _rootChoice[RootType::interval_map] = 0;//33;
+ _rootChoice[RootType::split_interval_map] = 100;//34;
             setRootTypeNames();
             _rootChoice.init();
 
@@ -101,25 +101,25 @@
             switch(rootChoice)
             {
             //-----------------------------------------------------------------
- case RootType::itl_map: {
- switch(neutronizerChoice) {
- case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<itl::map<int,int,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<itl::map<int,int,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<itl::map<int,int,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<itl::map<int,int,total_enricher > >;
- default: return choiceError(ITL_LOCATION("\nRootType::itl_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
- }//switch neutronizerChoice
- }//case itl_map
+ //case RootType::itl_map: {
+ // switch(neutronizerChoice) {
+ // case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<itl::map<int,int,partial_absorber> >;
+ // case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<itl::map<int,int,partial_enricher> >;
+ // case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<itl::map<int,int,total_absorber > >;
+ // case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<itl::map<int,int,total_enricher > >;
+ // default: return choiceError(ITL_LOCATION("\nRootType::itl_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
+ // }//switch neutronizerChoice
+ //}//case itl_map
             //-----------------------------------------------------------------
- case RootType::interval_map: {
- switch(neutronizerChoice) {
- case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<interval_map<int,int,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<interval_map<int,int,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<interval_map<int,int,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<interval_map<int,int,total_enricher > >;
- default: return choiceError(ITL_LOCATION("\nRootType::interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
- }//switch neutronizerChoice
- }//case interval_map
+ //case RootType::interval_map: {
+ // switch(neutronizerChoice) {
+ // case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<interval_map<int,int,partial_absorber> >;
+ // case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<interval_map<int,int,partial_enricher> >;
+ // case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<interval_map<int,int,total_absorber > >;
+ // case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<interval_map<int,int,total_enricher > >;
+ // default: return choiceError(ITL_LOCATION("\nRootType::interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
+ // }//switch neutronizerChoice
+ //}//case interval_map
             //-----------------------------------------------------------------
             case RootType::split_interval_map: {
                 switch(neutronizerChoice) {

Modified: sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp 2009-06-25 11:54:54 EDT (Thu, 25 Jun 2009)
@@ -403,7 +403,7 @@
     BOOST_CHECK_EQUAL( diff_2, I6_7D );
 
     diff_1.clear();
- I4_7D.left_subtract(diff_1, I0_3D);
+ diff_1 = left_subtract(I4_7D, I0_3D);
     BOOST_CHECK_EQUAL( diff_1, I4_7D );
 
     diff_2 = I4_7D;


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