|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r67920 - in sandbox/icl: boost/icl_xt libs/icl/test libs/icl_xt/example/time_and_duration_ libs/icl_xt/prj_home libs/icl_xt/test
From: afojgo_at_[hidden]
Date: 2011-01-10 13:58:54
Author: jofaber
Date: 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
New Revision: 67920
URL: http://svn.boost.org/trac/boost/changeset/67920
Log:
Added tests for interval_bitset. Some bug fixes. Fixed links on project's homepage.
Text files modified:
sandbox/icl/boost/icl_xt/interval_bitset.hpp | 203 +++++++++++++++++++++++++++++++--------
sandbox/icl/libs/icl/test/test_interval_set_shared.hpp | 31 ++++++
sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp | 24 +++
sandbox/icl/libs/icl_xt/prj_home/news.html | 7 +
sandbox/icl/libs/icl_xt/prj_home/reviews.html | 2
sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp | 18 +-
6 files changed, 226 insertions(+), 59 deletions(-)
Modified: sandbox/icl/boost/icl_xt/interval_bitset.hpp
==============================================================================
--- sandbox/icl/boost/icl_xt/interval_bitset.hpp (original)
+++ sandbox/icl/boost/icl_xt/interval_bitset.hpp 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
@@ -185,6 +185,11 @@
void show_matrix(const char off_on[2] = " 1")const;
std::string as_string()const{ return _map.as_string(); }
+ //==========================================================================
+ //= Selection
+ //==========================================================================
+ const_iterator find(const domain_type& key)const{ return _find(key); }
+
//==========================================================================
//= Iterator related
//==========================================================================
@@ -313,11 +318,153 @@
void intersect_(DomainT lo, DomainT up, BitSetT bits){_map &= value_type(interval_type::right_open(lo,up), bits);}
void flip_(DomainT lo, DomainT up, BitSetT bits){_map ^= value_type(interval_type::right_open(lo,up), bits);}
+ const_iterator _find(const domain_type& key)const
+ {
+ // Search for the potential interval w.r.t the shifted condensed_type
+ const_iterator it_ = _map.find(interval_type(key >> shift));
+ // Check if the key bit is set:
+ if(it_ != _map.end() && ((it_->second).contains(key & mask)))
+ return it_;
+ else
+ return _map.end();
+ }
+
private:
interval_bitmap_type _map;
};
+//==============================================================================
+//= Element iterator related
+//==============================================================================
+/*JODO decide which version to use
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator
+elements_begin(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ if(object.begin()==object.end())
+ return element_iterator(object.begin(), element_iterator::beyond);
+ else
+ return element_iterator(object.begin(), element_iterator::ante );
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator
+elements_end(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ return element_iterator(object.end(), element_iterator::beyond);
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator
+elements_begin(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator element_const_iterator;
+ if(object.begin()==object.end())
+ return element_const_iterator(object.begin(), element_iterator::beyond);
+ else
+ return element_const_iterator(object.begin(), element_iterator::ante );
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator
+elements_end(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator element_const_iterator;
+ return element_const_iterator(object.end(), element_iterator::beyond);
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator
+elements_rbegin(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator element_reverse_iterator;
+ if(object.rbegin()==object.rend())
+ return element_reverse_iterator(object.rbegin(), element_iterator::before);
+ else
+ return element_reverse_iterator(object.rbegin(), element_iterator::past );
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator
+elements_rend(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator element_reverse_iterator;
+ return element_reverse_iterator(object.rend(), element_iterator::before);
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator
+elements_rbegin(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator element_const_reverse_iterator;
+ if(object.rbegin()==object.rend())
+ return element_const_reverse_iterator(object.rbegin(), element_iterator::before);
+ else
+ return element_const_reverse_iterator(object.rbegin(), element_iterator::past );
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator
+elements_rend(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator element_iterator;
+ typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator element_const_reverse_iterator;
+ return element_const_reverse_iterator(object.rend(), element_iterator::before);
+}
+*/
+
+//------------------------------------------------------------------------------
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator
+elements_begin(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_begin(); }
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator
+elements_end(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_end(); }
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator
+elements_begin(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_begin(); }
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator
+elements_end(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_end(); }
+
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator
+elements_rbegin(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_rbegin(); }
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator
+elements_rend(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_rend(); }
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator
+elements_rbegin(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_rbegin(); }
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator
+elements_rend(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{ return object.elements_rend(); }
+//------------------------------------------------------------------------------
+
// For a given interval like e.g. [5,27] we have to split up the intervals into
// partitions
@@ -425,6 +572,7 @@
return cardinality;
}
+
//JODO move ...
template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::size_type
@@ -481,50 +629,6 @@
}
}
-//------------------------------------------------------------------------------
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator
-elements_begin(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_begin(); }
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_iterator
-elements_end(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_end(); }
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator
-elements_begin(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_begin(); }
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_iterator
-elements_end(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_end(); }
-
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator
-elements_rbegin(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_rbegin(); }
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_reverse_iterator
-elements_rend(interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_rend(); }
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator
-elements_rbegin(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_rbegin(); }
-
-template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
-typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_const_reverse_iterator
-elements_rend(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
-{ return object.elements_rend(); }
-
-//------------------------------------------------------------------------------
template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
bool is_element_equal(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& left,
@@ -582,9 +686,18 @@
bool disjoint(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& x1,
const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& x2 )
{
- return !intersects(x1, x2); //JODO
+ return !intersects(x1, x2);
}
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
+interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>&
+set_at( interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object,
+ const typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::segment_type& segment)
+{
+ object.erase(segment->first);
+ object.insert(segment);
+ return *this;
+}
template<class CharType, class CharTraits,
class DomainT, class BitSetT,
Modified: sandbox/icl/libs/icl/test/test_interval_set_shared.hpp
==============================================================================
--- sandbox/icl/libs/icl/test/test_interval_set_shared.hpp (original)
+++ sandbox/icl/libs/icl/test/test_interval_set_shared.hpp 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
@@ -697,6 +697,37 @@
}
template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_bitset_find_4_integral_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSetT::bitset_type BitsT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+
+ typename IntervalSetT::const_iterator found = set_a.find(MK_v(6));
+
+ BOOST_CHECK( (found->second).contains(6) );
+
+ found = set_a.find(MK_v(5));
+ BOOST_CHECK( found == set_a.end() );
+
+ set_a.add(MK_v(64));
+ found = set_a.find(MK_v(64));
+ BOOST_CHECK( (found->second).contains(0) );
+
+ set_a.add(MK_v(65));
+ found = set_a.find(MK_v(65));
+ BOOST_CHECK( (found->second).contains(1) );
+
+ found = set_a.find(MK_v(66));
+ BOOST_CHECK( found == set_a.end() );
+}
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
void interval_set_element_iter_4_discrete_types()
{
typedef IntervalSet<T> IntervalSetT;
Modified: sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp
==============================================================================
--- sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp (original)
+++ sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
@@ -32,7 +32,7 @@
This example is intended to show that we can work with
interval<ptime> points in time
-interval<ptime>::difference_type = duration time durations as intervall lenths
+interval<ptime>::difference_type = duration time durations as interval lengths
and
interval<duration> intervals of durations, as time object with a 0-element
that is not fixed.
@@ -78,7 +78,7 @@
// Note, that identity_element<ptime> is added to boost posix_time by
// adaptor code in <boost/icl/ptime.hpp>
- ptime origin = identity_element<ptime>::value();
+ posix_time::ptime origin = identity_element<ptime>::value();
ptime next = origin; ++next;
cout << "Smallest next time : " << next << endl;
@@ -89,7 +89,12 @@
time_duration decoration_time = stop_deco - start_deco;
+ //-----------------------------------------------------------------------------
+ cout << "sizeof(int) = " << sizeof(int) << endl;
+ cout << "sizeof(ptime) = " << sizeof(ptime) << endl;
+ cout << "sizeof(time_duration) = " << sizeof(time_duration) << endl;
+ //-----------------------------------------------------------------------------
//JODO Make it a nice example
ptime t_a = time_from_string("2010-12-24 19:30");
ptime t_b = time_from_string("2010-12-24 20:30");
@@ -104,7 +109,7 @@
icl::size(a_b);
- time_duration half = a_2_b / 2;
+ posix_time::time_duration half = a_2_b / 2;
ptime t_m = t_a + half;
cout << a_b << (icl::contains(a_b, t_m) ?
@@ -128,12 +133,23 @@
cout << rel_a_b << " " << (icl::size(rel_a_b)) << endl;
}
+void time_durations()
+{
+ time_duration start = hours(8) + minutes(30);
+ time_duration stop = hours(17) + minutes(15);
+
+ icl::interval<time_duration>::type working_hours
+ = icl::interval<time_duration>::right_open(start, stop);
+
+ cout << "working_hours: " << working_hours << endl;
+}
int main()
{
cout << ">>Interval Container Library: Sample time_and_duration.cpp <<\n";
cout << "-------------------------------------------------------------\n";
- time_and_duration();
+ //time_and_duration();
+ time_durations();
return 0;
}
Modified: sandbox/icl/libs/icl_xt/prj_home/news.html
==============================================================================
--- sandbox/icl/libs/icl_xt/prj_home/news.html (original)
+++ sandbox/icl/libs/icl_xt/prj_home/news.html 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
@@ -46,7 +46,12 @@
<a href="http://lists.boost.org/boost-announce/2010/04/0257.php">
accepted</a>
into Boost!
- Many thanks to all the reviewers and review manager Hartmut Kaiser.
+ Many thanks to all the
+ <a href="http://www.joachim-faulhaber.de/boost_icl/doc/libs/icl/doc/html/boost_icl/acknowledgments.html">
+ reviewers</a>
+ and review manager
+ <a href="http://www.cct.lsu.edu/~hkaiser/">
+ Hartmut Kaiser</a>.
</p>
</div>
Modified: sandbox/icl/libs/icl_xt/prj_home/reviews.html
==============================================================================
--- sandbox/icl/libs/icl_xt/prj_home/reviews.html (original)
+++ sandbox/icl/libs/icl_xt/prj_home/reviews.html 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
@@ -110,7 +110,7 @@
solve problems for me. […]
<p><em>The complete review can be found</em>
- <a href="http://archives.free.net.ph/message/20100228.164823.9efdc0b1.en.html">
+ <a href="http://permalink.gmane.org/gmane.comp.lib.boost.devel/200093">
<!--http://archives.free.net.ph/message/20100228.164823.9efdc0b1.en.html-->
here</a></p>
Modified: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp
==============================================================================
--- sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp (original)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp 2011-01-10 13:58:53 EST (Mon, 10 Jan 2011)
@@ -44,14 +44,16 @@
(fastest_icl_interval_set_flip_4_bicremental_types)
{ interval_set_flip_4_bicremental_types<INTERVAL_SET, integral_type_3>();}
-//JODO implement 'find' and 'set' and test for interval_bitset.
-//BOOST_AUTO_TEST_CASE
-//(fastest_icl_interval_set_find_4_bicremental_types)
-//{ interval_set_find_4_bicremental_types<INTERVAL_SET, integral_type_4>();}
-
-//BOOST_AUTO_TEST_CASE
-//(fastest_icl_interval_set_element_iter_4_discrete_types)
-//{ interval_set_element_iter_4_discrete_types<INTERVAL_SET, discrete_type_2>();}
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_bitset_find_4_integral_types)
+{ interval_bitset_find_4_integral_types<INTERVAL_SET, integral_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_element_iter_4_discrete_types)
+{ interval_set_element_iter_4_discrete_types<INTERVAL_SET, integral_type_5>();}
+
+//JODO Check set_at, check for untested stuff
+
#endif // BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
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