$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67678 - in sandbox/icl: boost/icl_xt libs/icl/test libs/icl/test/test_casual_ libs/icl_xt/example libs/icl_xt/example/casual_sample_ libs/icl_xt/example/time_and_duration_ libs/icl_xt/test libs/icl_xt/test/fastest_interval_bitset_ libs/icl_xt/test/fastest_interval_bitset_infix_
From: afojgo_at_[hidden]
Date: 2011-01-05 06:28:08
Author: jofaber
Date: 2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
New Revision: 67678
URL: http://svn.boost.org/trac/boost/changeset/67678
Log:
Modified interval_bitset. Added tests for interval_bitset.
Added:
   sandbox/icl/libs/icl_xt/example/casual_sample_/
   sandbox/icl/libs/icl_xt/example/casual_sample_/casual_sample.cpp   (contents, props changed)
   sandbox/icl/libs/icl_xt/example/casual_sample_/vc9_casual_sample.vcproj   (contents, props changed)
   sandbox/icl/libs/icl_xt/example/time_and_duration_/
   sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp   (contents, props changed)
   sandbox/icl/libs/icl_xt/example/time_and_duration_/vc9_time_and_duration.vcproj   (contents, props changed)
   sandbox/icl/libs/icl_xt/example/vc9_icl_xt_examples.sln   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/fastest_interval_bitset.cpp   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/vc9_fastest_interval_bitset.vcproj   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/fastest_interval_bitset_infix.cpp   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/vc9_fastest_interval_bitset_infix.vcproj   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_cases.hpp   (contents, props changed)
   sandbox/icl/libs/icl_xt/test/vc9_icl_xt_fast_tests.sln   (contents, props changed)
Text files modified: 
   sandbox/icl/boost/icl_xt/interval_bitset.hpp           |   138 +++++++++++++++++++++++++++++++++------ 
   sandbox/icl/libs/icl/test/portability.hpp              |    24 +++++-                                  
   sandbox/icl/libs/icl/test/test_casual_/test_casual.cpp |    26 +++++--                                 
   sandbox/icl/libs/icl/test/test_interval_set_shared.hpp |    29 ++++++-                                 
   sandbox/icl/libs/icl/test/test_type_lists.hpp          |    10 +-                                      
   5 files changed, 183 insertions(+), 44 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-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -43,7 +43,7 @@
     typename    DomainT = unsigned long, 
     typename    BitSetT = icl::bits<unsigned long>, 
     ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, DomainT),
-    ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, DomainT, Compare), //JODO change to right_open_interval
+    ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, DomainT, Compare),
     ICL_ALLOC   Alloc   = std::allocator
 > 
 class interval_bitset
@@ -73,8 +73,14 @@
 {
 public:
     typedef boost::icl::interval_map
-        <DomainT, BitSetT, boost::icl::partial_absorber, 
-         std::less, boost::icl::inplace_bit_add, boost::icl::inplace_bit_and> interval_bitmap_type;
+    <
+        DomainT, BitSetT, boost::icl::partial_absorber, 
+        std::less, boost::icl::inplace_bit_add, boost::icl::inplace_bit_and,
+        Interval, Alloc
+    > 
+    interval_bitmap_type;
+
+    typedef interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc> type;
 
     typedef DomainT                                       domain_type;
     typedef DomainT                                       codomain_type;
@@ -95,6 +101,9 @@
     typedef typename interval_bitmap_type::domain_compare domain_compare;      
     typedef typename std::set<DomainT,domain_compare,Alloc<DomainT> > atomized_type;
 
+    typedef typename difference_type_of<domain_type>::type difference_type;
+
+
     typedef typename interval_bitmap_type::iterator               iterator;
     typedef typename interval_bitmap_type::const_iterator         const_iterator;
     typedef typename interval_bitmap_type::reverse_iterator       reverse_iterator;
@@ -114,6 +123,10 @@
     typedef typename interval_bitmap_type::reference       reference;
     typedef typename interval_bitmap_type::const_reference const_reference;
 
+public:
+	interval_bitset(): _map() {}
+	explicit interval_bitset(const element_type& element)   : _map() { this->add(element); } 
+	explicit interval_bitset(const interval_type& inter_val): _map() { this->add(inter_val); } 
 
 public:
     bool operator ==(const interval_bitset& rhs)const{ return _map == rhs._map; }
@@ -125,11 +138,11 @@
     interval_bitset& operator &=(const interval_bitset& rhs) {_map &= rhs._map; return *this;}
     interval_bitset& operator ^=(const interval_bitset& rhs) {_map ^= rhs._map; return *this;}
 
-    interval_bitset& operator +=(const element_type& rhs) {return add(interval_type(rhs, rhs));      }
-    interval_bitset& operator |=(const element_type& rhs) {return add(interval_type(rhs, rhs));      }
-    interval_bitset& operator -=(const element_type& rhs) {return subtract(interval_type(rhs, rhs)); }
-    interval_bitset& operator &=(const element_type& rhs) {return intersect(interval_type(rhs, rhs));}
-    interval_bitset& operator ^=(const element_type& rhs) {return flip(interval_type(rhs, rhs));     }
+    interval_bitset& operator +=(const element_type& rhs) {return add(interval_type(rhs));      }
+    interval_bitset& operator |=(const element_type& rhs) {return add(interval_type(rhs));      }
+    interval_bitset& operator -=(const element_type& rhs) {return subtract(interval_type(rhs)); }
+    interval_bitset& operator &=(const element_type& rhs) {return intersect(interval_type(rhs));}
+    interval_bitset& operator ^=(const element_type& rhs) {return flip(interval_type(rhs));     }
 
     interval_bitset& operator +=(const interval_type& rhs){return add(rhs);      }
     interval_bitset& operator |=(const interval_type& rhs){return add(rhs);      }
@@ -143,14 +156,20 @@
     interval_bitset& subtract (const interval_type& rhs){return segment_apply(&interval_bitset::subtract_, rhs);}
     interval_bitset& intersect(const interval_type& rhs){return segment_apply(&interval_bitset::intersect_,rhs);}
     interval_bitset& flip     (const interval_type& rhs){return segment_apply(&interval_bitset::flip_,     rhs);}
+    interval_bitset& insert   (const interval_type& rhs){return add(rhs);}
+    interval_bitset& erase    (const interval_type& rhs){return subtract(rhs);}
 
     interval_bitset& add      (const element_type& rhs) {return segment_apply(&interval_bitset::add_,      interval_type(rhs));}
     interval_bitset& subtract (const element_type& rhs) {return segment_apply(&interval_bitset::subtract_, interval_type(rhs));}
     interval_bitset& intersect(const element_type& rhs) {return segment_apply(&interval_bitset::intersect_,interval_type(rhs));}
     interval_bitset& flip     (const element_type& rhs) {return segment_apply(&interval_bitset::flip_,     interval_type(rhs));}
+    interval_bitset& insert   (const element_type& rhs) {return add(rhs);}
+    interval_bitset& erase    (const element_type& rhs) {return subtract(rhs);}
 
     void clear()                    { icl::clear(_map); }
     bool empty()const               { return icl::is_empty(_map); }
+    void swap(interval_bitset& operand) { _map.swap(operand._map); }
+
     size_type cardinality()const;
     size_type size()const           { return cardinality(); }
     size_type interval_count()const { return interval_count(_map); }
@@ -158,6 +177,7 @@
 
     bool contains(element_type element)const{ return _map(element>>shift).contains(element & mask); }
     bool contains(const segment_type& segment)const;
+	//CL bool contains(const element_type& element)const     { return contains(segment_type(element)); };
     bool contains(const interval_bitset& sub)const      { return icl::contains(_map, sub._map); }
     bool contained_in(const interval_bitset& super)const{ return icl::within(_map, super._map); }
 
@@ -256,11 +276,14 @@
     static word_type to_upper_from(word_type bit){return bit==last ? top : ~((w1<<bit)-w1); }
 
     interval_bitset& segment_apply(segment_combiner combine, const interval_type& operand)
-    {                                                   // same as
-        condensed_type base = operand.first() >> shift, // operand.first()/ divisor
-                       ceil = operand.last()  >> shift; // operand.last() / divisor
-        word_type base_rest = operand.first() &  mask , // operand.first()% divisor
-                  ceil_rest = operand.last()  &  mask ; // operand.last() % divisor  
+    {
+        if(icl::is_empty(operand))
+            return *this;
+                                                            // same as
+        condensed_type base = icl::first(operand) >> shift, // first(operand) / divisor
+                       ceil = icl::last (operand) >> shift; // last (operand) / divisor
+        word_type base_rest = icl::first(operand) &  mask , // first(operand) % divisor
+                  ceil_rest = icl::last (operand) &  mask ; // last (operand) % divisor  
 
         if(base == ceil) // [first, last] are within one bitset (chunk)
             (this->*combine)(base, base+1, bitset_type(  to_upper_from(base_rest)
@@ -295,6 +318,26 @@
 };
 
 
+
+// For a given interval like e.g. [5,27] we have to split up the intervals into
+// partitions
+//
+//    [0,1)->   [1,2)->   [2,3)->   [3,4)->   
+//    [00101100][11001011][11101001][11100000]
+// +       [111  11111111  11111111  1111]      [5,27] as bitset
+//          a                           b
+//          
+// => [0,1)->   [1,3)->   [3,4)->
+//    [00101111][11111111][11110000]
+//
+// in preparation to an operation like "+" above.
+//
+//    [0,1)->   [1,2)->   [2,3)->   [3,4)->   
+//    [00101100][11001011][11101001][11100000]
+//         [111  11111111  11111111  1111]      [5,27] as bitset
+//     00000111  11111111            11110000
+//         subs  ^ inters  ^         supers
+//               lo=1      up=2      
 template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
 typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::PartsT
 interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::partition
@@ -305,13 +348,13 @@
     const segment_type& segment
 )const
 {
-    if(segment.empty())
+	if(icl::is_empty(segment))
         return PartsT();
 
-    condensed_type base = segment.first() >> shift, // segment.first()/ divisor
-                   ceil = segment.last()  >> shift; // segment.last() / divisor
-    word_type base_rest = segment.first() &  mask , // segment.first()% divisor
-              ceil_rest = segment.last()  &  mask ; // segment.last() % divisor  
+    condensed_type base = icl::first(segment) >> shift, // segment.first()/ divisor
+                   ceil = icl::last (segment) >> shift; // segment.last() / divisor
+    word_type base_rest = icl::first(segment) &  mask , // segment.first()% divisor
+              ceil_rest = icl::last (segment) &  mask ; // segment.last() % divisor  
 
     if(base == ceil) // [first, last] are within one bitset
     {
@@ -349,7 +392,7 @@
 template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
 bool interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::contains(const segment_type& segment)const
 { 
-    if(segment.empty())
+	if(icl::is_empty(segment))
         return true; // Emptieness is contained in everything
 
     condensed_type                 lo,         up        ;
@@ -364,7 +407,7 @@
             return false;
         if(parts.contains(super_part) && !_map(up).contains(supers))
             return false;
-        if(parts.contains(inter_part) && !_map.contains(seg_type(interval_type::right_open(lo,up), inters)) ) 
+        if(parts.contains(inter_part) && !icl::contains(_map, seg_type(interval_type::right_open(lo,up), inters)) ) 
             return false;
 
         return true;
@@ -382,8 +425,38 @@
     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 
+    cardinality(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+    typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::type object_type;
+    typedef typename object_type::size_type size_type;
+    size_type cardinality = 0;
+    ICL_const_FORALL(typename object_type, it_, object)
+        cardinality += (it_->second.cardinality() * icl::cardinality(it_->first));//JODO icl::bits
+    return cardinality; 
+}
+
+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 
+    interval_count(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+    return object.iterative_size(); 
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::interval_type 
+hull(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+	typedef typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::interval_type interval_type;
+    return 
+        icl::is_empty(object) 
+            ? identity_element<interval_type>::value()
+			: interval_type::closed(*object.elements_begin(), *object.elements_rbegin());
+}
 
-template<class DomainT,    class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
 void interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::show_segments()const
 {
     for(typename interval_bitmap_type::const_iterator it_ = _map.begin();
@@ -472,7 +545,7 @@
 
 template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
 bool contains(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& super, 
-     const typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_type& sub  ) 
+           typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::element_type sub) 
 { 
     return super.contains(sub); 
 }
@@ -491,6 +564,27 @@
     return super.contains(sub); 
 }
 
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
+bool within(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& sub, 
+            const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& super) 
+{ 
+    return super.contains(sub); 
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
+bool intersects(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& x1, 
+                const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& x2  ) 
+{ 
+    return !(x1 & x2).empty(); //JODO
+}
+
+template<class DomainT, class BitSetT, ICL_COMPARE Compare, ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc> 
+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
+}
+
 
 template<class CharType, class CharTraits, 
     class DomainT, class BitSetT, 
Modified: sandbox/icl/libs/icl/test/portability.hpp
==============================================================================
--- sandbox/icl/libs/icl/test/portability.hpp	(original)
+++ sandbox/icl/libs/icl/test/portability.hpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -48,13 +48,25 @@
        ICL_INTERVAL(ICL_COMPARE)  Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
        ICL_ALLOC   Alloc   = std::allocator>class
 
-    
-#define ICL_IntervalSet_TEMPLATE(tp_T) \
-template<class tp_T, \
-       ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, tp_T), \
-       ICL_INTERVAL(ICL_COMPARE)  Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
-       ICL_ALLOC   Alloc   = std::allocator>class 
 
+#ifndef ICL_INTERVAL_BITSET_IMPL
+
+#   define ICL_IntervalSet_TEMPLATE(tp_T) \
+    template<class tp_T, \
+        ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, tp_T), \
+        ICL_INTERVAL(ICL_COMPARE)  Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
+        ICL_ALLOC   Alloc   = std::allocator>class 
+
+#else
+
+#   define ICL_IntervalSet_TEMPLATE(tp_T) \
+    template<class tp_T, \
+        class BitSetT = icl::bits<unsigned long>, \
+        ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, tp_T), \
+        ICL_INTERVAL(ICL_COMPARE)  Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
+        ICL_ALLOC   Alloc   = std::allocator>class 
+
+#endif //ICL_INTERVAL_BITSET_IMPL
 
 #endif // BOOST_ICL_TEST_PORTABILITY_HPP_JOFA_101111
 
Modified: sandbox/icl/libs/icl/test/test_casual_/test_casual.cpp
==============================================================================
--- sandbox/icl/libs/icl/test/test_casual_/test_casual.cpp	(original)
+++ sandbox/icl/libs/icl/test/test_casual_/test_casual.cpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -19,9 +19,12 @@
 
 #include <boost/icl/gregorian.hpp>
 #include <boost/icl/ptime.hpp>
-//#include <boost/icl/interval_map.hpp>
+
+#include <boost/icl/interval_map.hpp>
 #include <boost/icl/interval.hpp>
 
+#include <boost/icl_xt/inter_bitset.hpp>
+
 
 using namespace std;
 using namespace boost;
@@ -69,15 +72,24 @@
         cout << rel_a_b << " " << (icl::size(rel_a_b)) << endl;
 }
 
+void test_inter_bitset()
+{
+	inter_bitset<int> inbis;
+
+	interval<int>::type itv = interval<int>::right_open(0,2);
+	inbis.add(itv);
+}
+
 BOOST_AUTO_TEST_CASE(casual)
 {
-    //typedef int T;
-    //typedef int U;
-    //typedef interval_map<T,U, total_absorber> IntervalMapT;
-    //typedef interval_set<T>                   IntervalSetT;
-    //typedef IntervalMapT::interval_type       IntervalT;
+    typedef int T;
+    typedef int U;
+    typedef interval_map<T,U, total_absorber> IntervalMapT;
+    typedef interval_set<T>                   IntervalSetT;
+    typedef IntervalMapT::interval_type       IntervalT;
 
-    time_test();
+    // time_test();
+	test_inter_bitset();
 
     BOOST_CHECK_EQUAL(true, true);
 }
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-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -118,6 +118,8 @@
     BOOST_CHECK_EQUAL(hull(single_I0_1I).lower(), I0_1I.lower());
     BOOST_CHECK_EQUAL(hull(single_I0_1I).upper(), I0_1I.upper());
 
+    BOOST_CHECK_EQUAL(icl::is_empty(single_I0_0I), false);
+
     //contains predicate
     BOOST_CHECK_EQUAL(icl::contains(single_I0_0I, v0), true);
     BOOST_CHECK_EQUAL(icl::contains(single_I0_0I, I0_0I), true);
@@ -242,17 +244,34 @@
     T v3 = make<T>(3);
     T v5 = make<T>(5);
 
-    size_T s3 = make<size_T>(3);
-    
+    size_T s3 = make<size_T>(3);    
 
     IntervalSet<T> is_1_3_5;
     is_1_3_5.add(v1).add(v3).add(v5);
 
-    BOOST_CHECK_EQUAL( cardinality(is_1_3_5),       s3 );
-    BOOST_CHECK_EQUAL( is_1_3_5.size(),             s3 );
-    BOOST_CHECK_EQUAL( interval_count(is_1_3_5),   3 );
+    BOOST_CHECK_EQUAL( cardinality(is_1_3_5),     s3 );
+
+    BOOST_CHECK_EQUAL( is_1_3_5.size(),           s3 );
     BOOST_CHECK_EQUAL( iterative_size(is_1_3_5),   3 );
+
+#ifdef ICL_INTERVAL_BITSET_IMPL
+    BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(),   1 );
+    BOOST_CHECK_EQUAL( interval_count(is_1_3_5),    1 );
+#else
     BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(),   3 );
+    BOOST_CHECK_EQUAL( interval_count(is_1_3_5),    3 );
+#endif
+
+    IntervalSet<T> is_5_65_129;
+    is_5_65_129.add(MK_v(5)).add(MK_v(65)).add(MK_v(129));
+
+    BOOST_CHECK_EQUAL( cardinality(is_5_65_129),     s3 );
+
+    BOOST_CHECK_EQUAL( is_5_65_129.size(),           s3 );
+    BOOST_CHECK_EQUAL( iterative_size(is_5_65_129),   3 );
+
+    BOOST_CHECK_EQUAL( is_5_65_129.iterative_size(),   3 );
+    BOOST_CHECK_EQUAL( interval_count(is_5_65_129),    3 );
 }
 
 
Modified: sandbox/icl/libs/icl/test/test_type_lists.hpp
==============================================================================
--- sandbox/icl/libs/icl/test/test_type_lists.hpp	(original)
+++ sandbox/icl/libs/icl/test/test_type_lists.hpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -82,10 +82,12 @@
     ,short, int, long, long long
 > integral_types;
 
-typedef int           integral_type_1;
-typedef unsigned int  integral_type_2;
-typedef short         integral_type_3;
-typedef unsigned int  integral_type_4;
+typedef int                integral_type_1;
+typedef unsigned int       integral_type_2;
+typedef short              integral_type_3;
+typedef unsigned short     integral_type_4;
+typedef long long          integral_type_5;
+typedef unsigned long long integral_type_6;
 
 typedef ::boost::mpl::list<
     unsigned short, unsigned int
Added: sandbox/icl/libs/icl_xt/example/casual_sample_/casual_sample.cpp
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/example/casual_sample_/casual_sample.cpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,22 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+   Distributed under the Boost Software License, Version 1.0.
+      (See accompanying file LICENCE.txt or copy at
+           http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#include <iostream>
+
+using namespace std;
+//using namespace boost::posix_time;
+//using namespace boost::icl;
+
+
+int main()
+{
+    return 0;
+}
+
Added: sandbox/icl/libs/icl_xt/example/casual_sample_/vc9_casual_sample.vcproj
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/example/casual_sample_/vc9_casual_sample.vcproj	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_casual_sample"
+	ProjectGUID="{0D1DB87E-E72A-4FE9-A067-1907CC6723F8}"
+	RootNamespace="casual_sample"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="../../../../bin/debug/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../../../../; ../../../../icl"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				UseUnicodeResponseFiles="true"
+				OutputFile="../../../../bin/debug/$(ProjectName).exe"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				IgnoreAllDefaultLibraries="false"
+				GenerateDebugInformation="true"
+				AssemblyDebug="1"
+				SubSystem="1"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+				UseUnicodeResponseFiles="true"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="../../../../bin/release/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				UseUnicodeResponseFiles="false"
+				OutputFile="../../../../bin/release/$(ProjectName).exe"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				IgnoreAllDefaultLibraries="false"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\casual_sample.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\..\..\boost\itl\interval.hpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Added: sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/example/time_and_duration_/time_and_duration.cpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,147 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+   Distributed under the Boost Software License, Version 1.0.
+      (See accompanying file LICENCE.txt or copy at
+           http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/** Example time_and_duration.cpp \file time_and_duration.cpp 
+    \brief Times, durations and intervals. 
+
+
+    \include time_and_duration_/time_and_duration.cpp
+*/
+//[example_time_and_duration
+// The next line includes <boost/date_time/posix_time/posix_time.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/ptime.hpp> 
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::posix_time;
+using namespace boost::icl;
+
+
+/*JODO This is only halfbaked stuff and a collection of some ideas:
+
+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
+and
+interval<duration> intervals of durations, as time object with a 0-element
+that is not fixed.
+
+While thinking about the date time stuff I realize that the fixed ptime and
+relative duration aspects are only an interpretation with respect to the
+parameters origin, resolution and time segmentation, which could be called
+time system T=(o,r,s).
+
+Basically we can always compute with integers!
+(1) We receive a date/time information as input for a timesystem T=(o,r,s).
+(2) We transform time data from T to integer values i.
+(3) All computations are made on integer values i.
+(4) Finally we can transform the compuation results back to the timesystem
+    T=(o,r,s) or a different timesystem T'=(o',r',s'), if needed.
+
+T ---f---> T   We assume, that every operation f:T->T on time types
+|          |   can be performed on the equivalent integral type I,
+g          g   such that the left diagram commutes.
+|          |
+V          V
+I ---f---> I
+
+Arithmetic on intervals: According to
+ptime + duration    -> ptime
+duration + ptime    -> ptime
+duration + duration -> duration
+
+we could define
+interval<ptime> + interval<duration> -> interval<ptime>
+etc.
+*/
+void time_and_duration()
+{
+	// boost::posix_times are points in time related to the
+	// Gregorian calendar. It has a time origin January-1-0, 00:00
+	// which is NOT in the scope of its representable values.
+
+	// The smallest representable point in time is
+	cout << "Technical time origin: " << ptime(min_date_time) << endl;
+	// which is also the identity element on ptime
+	cout << "Also Null value      : " << icl::identity_element<ptime>::value() << endl;
+	// 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();
+	ptime next   = origin; ++next;
+	cout << "Smallest next time   : " << next << endl;
+
+	// Start decorating the Christmas tree
+    ptime start_deco = time_from_string("2010-12-24 16:30");
+	// Ahh! Christmas tree is decorated
+    ptime stop_deco = time_from_string("2010-12-24 17:15");
+
+    time_duration decoration_time = stop_deco - start_deco;
+
+
+	//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");
+    time_duration a_2_b = t_b - t_a;
+    cout << "Duration of [" << t_a << "," << t_b << ") = " 
+         << a_2_b << endl;  
+
+    interval<ptime>::type a_b 
+        = interval<ptime>::right_open(t_a, t_b);
+    cout << "Duration of " << a_b << " = " 
+         << icl::size(a_b) << endl;
+
+	icl::size(a_b);
+
+    time_duration half = a_2_b / 2;
+    ptime t_m = t_a + half;
+
+    cout << a_b << (icl::contains(a_b, t_m) ? 
+                    " contains " : "does not contain ") 
+         << t_m << endl;
+
+	ptime day_begin = time_from_string("2010-12-24 00:00");
+	time_duration d_a = t_a - day_begin;
+	time_duration d_b = t_b - day_begin;
+	time_duration d_m = d_b - d_a;
+
+	interval<time_duration>::type rel_a_b 
+        = interval<time_duration>::right_open(d_a, d_b);
+
+	time_duration sz_a_b_1 = d_b - d_a;
+	time_duration sz_a_b_2 = icl::size(rel_a_b);
+	cout << "b-a         = " << sz_a_b_1 << endl;
+	cout << "size([a,b)) = " << sz_a_b_2 << endl;
+	cout << "size([a,b)) = " << (icl::size(rel_a_b)) << endl;
+
+	cout << rel_a_b << " " << (icl::size(rel_a_b)) << endl;
+}
+
+
+int main()
+{
+    cout << ">>Interval Container Library: Sample time_and_duration.cpp <<\n";
+    cout << "-------------------------------------------------------------\n";
+    time_and_duration();
+    return 0;
+}
+
+// Program output:
+/*-----------------------------------------------------------------------------
+>>Interval Container Library: Sample time_and_duration.cpp <<
+-------------------------------------------------------------
+TODO Show prgram output.
+-----------------------------------------------------------------------------*/
+//]
+
Added: sandbox/icl/libs/icl_xt/example/time_and_duration_/vc9_time_and_duration.vcproj
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/example/time_and_duration_/vc9_time_and_duration.vcproj	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_time_and_duration"
+	ProjectGUID="{0D1DB87E-E72A-4FE9-A067-1907CC6634F8}"
+	RootNamespace="time_and_duration"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="../../../../bin/debug/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_STLP_DEBUG=1"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				UseUnicodeResponseFiles="true"
+				OutputFile="../../../../bin/debug/$(ProjectName).exe"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib; ../../../../../../STLport/STLport-5.2.1/lib"
+				IgnoreAllDefaultLibraries="false"
+				GenerateDebugInformation="true"
+				AssemblyDebug="1"
+				SubSystem="1"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+				UseUnicodeResponseFiles="true"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="../../../../bin/release/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				UseUnicodeResponseFiles="false"
+				OutputFile="../../../../bin/release/$(ProjectName).exe"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				IgnoreAllDefaultLibraries="false"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\time_and_duration.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\..\..\boost\itl\interval.hpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Added: sandbox/icl/libs/icl_xt/example/vc9_icl_xt_examples.sln
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/example/vc9_icl_xt_examples.sln	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,38 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_casual_sample", "casual_sample_\vc9_casual_sample.vcproj", "{0D1DB87E-E72A-4FE9-A067-1907CC6723F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_amount_cube", "amount_cube_\vc9_amount_cube.vcproj", "{5B6AE5B3-FAF3-4D98-A6F9-C8889C62A0E5}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_history", "history_\vc9_history.vcproj", "{DD506ECC-2DE5-4C26-B810-B85A61BAA7EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_time_and_duration", "time_and_duration_\vc9_time_and_duration.vcproj", "{0D1DB87E-E72A-4FE9-A067-1907CC6634F8}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{0D1DB87E-E72A-4FE9-A067-1907CC6723F8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6723F8}.Debug|Win32.Build.0 = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6723F8}.Release|Win32.ActiveCfg = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6723F8}.Release|Win32.Build.0 = Release|Win32
+		{5B6AE5B3-FAF3-4D98-A6F9-C8889C62A0E5}.Debug|Win32.ActiveCfg = Debug|Win32
+		{5B6AE5B3-FAF3-4D98-A6F9-C8889C62A0E5}.Debug|Win32.Build.0 = Debug|Win32
+		{5B6AE5B3-FAF3-4D98-A6F9-C8889C62A0E5}.Release|Win32.ActiveCfg = Release|Win32
+		{5B6AE5B3-FAF3-4D98-A6F9-C8889C62A0E5}.Release|Win32.Build.0 = Release|Win32
+		{DD506ECC-2DE5-4C26-B810-B85A61BAA7EC}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DD506ECC-2DE5-4C26-B810-B85A61BAA7EC}.Debug|Win32.Build.0 = Debug|Win32
+		{DD506ECC-2DE5-4C26-B810-B85A61BAA7EC}.Release|Win32.ActiveCfg = Release|Win32
+		{DD506ECC-2DE5-4C26-B810-B85A61BAA7EC}.Release|Win32.Build.0 = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6634F8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6634F8}.Debug|Win32.Build.0 = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6634F8}.Release|Win32.ActiveCfg = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6634F8}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Added: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/fastest_interval_bitset.cpp
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/fastest_interval_bitset.cpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+    
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+   Distributed under the Boost Software License, Version 1.0.
+      (See accompanying file LICENCE.txt or copy at
+           http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <libs/icl/test/unit_test_unwarned.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include <libs/icl/test/test_type_lists.hpp>
+#include <libs/icl/test/test_value_maker.hpp>
+
+#include <boost/icl_xt/interval_bitset.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#define ICL_INTERVAL_BITSET_IMPL // Pass the interval_bitset template parameter
+                                 // to the test functions via portability.hpp
+#include <libs/icl/test/test_interval_set_shared.hpp>
+
+#define INTERVAL_SET interval_bitset
+#include <libs/icl_xt/test/fastest_interval_bitset_cases.hpp>
+
+
Added: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/vc9_fastest_interval_bitset.vcproj
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_/vc9_fastest_interval_bitset.vcproj	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_fastest_interval_bitset"
+	ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A905C}"
+	RootNamespace="Fastest_interval_bitset"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="../../../../bin/debug/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="../../../../bin/debug/$(ProjectName).exe"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="../../../../bin/release/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="../../../../bin/release/$(ProjectName).exe"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\fastest_interval_bitset.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\test_type_lists.hpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Added: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_cases.hpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,59 @@
+/*-----------------------------------------------------------------------------+    
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+   Distributed under the Boost Software License, Version 1.0.
+      (See accompanying file LICENCE.txt or copy at
+           http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_fundamentals_4_ordered_types)
+{            interval_set_fundamentals_4_ordered_types<INTERVAL_SET, integral_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_ctor_4_bicremental_types)
+{            interval_set_ctor_4_bicremental_types<INTERVAL_SET, integral_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_add_sub_4_bicremental_types)
+{            interval_set_add_sub_4_bicremental_types<INTERVAL_SET, integral_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_distinct_4_bicremental_types)
+{            interval_set_distinct_4_bicremental_types<INTERVAL_SET, integral_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_element_compare_4_bicremental_types)
+{            interval_set_element_compare_4_bicremental_types<INTERVAL_SET, integral_type_5>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_contains_4_bicremental_types)
+{            interval_set_contains_4_bicremental_types<INTERVAL_SET, integral_type_6>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_operators_4_bicremental_types)
+{            interval_set_operators_4_bicremental_types<INTERVAL_SET, integral_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_base_intersect_4_bicremental_types)
+{            interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, integral_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(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>();}
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
+
+
+
Added: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/fastest_interval_bitset_infix.cpp
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/fastest_interval_bitset_infix.cpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+    
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+   Distributed under the Boost Software License, Version 1.0.
+      (See accompanying file LICENCE.txt or copy at
+           http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <libs/icl/test/unit_test_unwarned.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include <libs/icl/test/test_type_lists.hpp>
+#include <libs/icl/test/test_value_maker.hpp>
+
+#include <boost/icl_xt/interval_bitset.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#define ICL_INTERVAL_BITSET_IMPL // Pass the interval_bitset template parameter
+                                 // to the test functions via portability.hpp
+#include <libs/icl/test/test_interval_set_shared.hpp>
+
+#define INTERVAL_SET interval_bitset
+#include <libs/icl_xt/test/fastest_interval_bitset_infix_cases.hpp>
+
+
+
Added: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/vc9_fastest_interval_bitset_infix.vcproj
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_/vc9_fastest_interval_bitset_infix.vcproj	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_fastest_interval_bitset_infix"
+	ProjectGUID="{A731623C-94BC-4666-A419-35D1623E916E}"
+	RootNamespace="Fastest_interval_bitset_infix"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="../../../../bin/debug/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="../../../../bin/debug/$(ProjectName).exe"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="../../../../bin/release/"
+			IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+			ConfigurationType="1"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="../../../../bin/release/$(ProjectName).exe"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\fastest_interval_bitset_infix.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\test_type_lists.hpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Added: sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/fastest_interval_bitset_infix_cases.hpp	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+    
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+   Distributed under the Boost Software License, Version 1.0.
+      (See accompanying file LICENCE.txt or copy at
+           http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_plus_overload_4_bicremental_types)
+{            interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, integral_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_pipe_overload_4_bicremental_types)
+{            interval_set_infix_pipe_overload_4_bicremental_types<INTERVAL_SET, integral_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_minus_overload_4_bicremental_types)
+{            interval_set_infix_minus_overload_4_bicremental_types<INTERVAL_SET, integral_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_et_overload_4_bicremental_types)
+{            interval_set_infix_et_overload_4_bicremental_types<INTERVAL_SET, integral_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_caret_overload_4_bicremental_types)
+{            interval_set_infix_caret_overload_4_bicremental_types<INTERVAL_SET, integral_type_5>();}
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090702
+
+
+
Added: sandbox/icl/libs/icl_xt/test/vc9_icl_xt_fast_tests.sln
==============================================================================
--- (empty file)
+++ sandbox/icl/libs/icl_xt/test/vc9_icl_xt_fast_tests.sln	2011-01-05 06:28:05 EST (Wed, 05 Jan 2011)
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_bitset", "fastest_interval_bitset_\vc9_fastest_interval_bitset.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A905C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_bitset_infix", "fastest_interval_bitset_infix_\vc9_fastest_interval_bitset_infix.vcproj", "{A731623C-94BC-4666-A419-35D1623E916E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A905C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A905C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A905C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A905C}.Release|Win32.Build.0 = Release|Win32
+		{A731623C-94BC-4666-A419-35D1623E916E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A731623C-94BC-4666-A419-35D1623E916E}.Debug|Win32.Build.0 = Debug|Win32
+		{A731623C-94BC-4666-A419-35D1623E916E}.Release|Win32.ActiveCfg = Release|Win32
+		{A731623C-94BC-4666-A419-35D1623E916E}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal