$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r57263 - in sandbox/itl: boost/itl boost/itl/type_traits boost/itl_xt boost/validate/driver boost/validate/gentor boost/validate/laws boost/validate/type libs/itl/doc libs/itl/example libs/itl/example/large_bitset_ libs/itl/example/month_and_week_grid_ libs/itl/example/party_ libs/itl/example/std_transform_ libs/itl/example/user_groups_ libs/itl/test libs/itl/test/fastest_interval_map_ libs/itl/test/fastest_interval_map_infix_ libs/itl/test/fastest_interval_map_infix_mixed_ libs/itl/test/fastest_interval_map_mixed2_ libs/itl/test/fastest_interval_set_ libs/itl/test/fastest_interval_set_infix_ libs/itl/test/fastest_interval_set_mixed_ libs/itl/test/fastest_partial_interval_quantifier_ libs/itl/test/fastest_separate_interval_set_infix_ libs/itl/test/fastest_total_interval_quantifier_ libs/itl/test/test_casual_ libs/itl/test/test_combinable_ libs/itl/test/test_interval_set_infix_ libs/itl/test/test_partial_interval_quantifier_ libs/itl/test/test_separate_interval_set_infix_ libs/itl/test/test_split_interval_set_infix_ libs/itl/test/test_total_interval_quantifier_ libs/itl_xt/test/meta_functors_ libs/validate/example libs/validate/example/labat_itv_bitset_ libs/validate/example/labat_single_ libs/validate/test libs/validate/test/test_bit_collector_ libs/validate/test/test_collector_ libs/validate/test/test_interval_bitset_ libs/validate/test/test_itl_set_ libs/validate/test/test_map_copy_conformity_ libs/validate/test/test_map_order_ libs/validate/test/test_set_copy_conformity_ libs/validate/test/test_set_order_ libs/validate/test/test_signed_quantifier_ libs/validate/test/test_unsigned_quantifier_ libs/validate/test/test_val_relations_
From: afojgo_at_[hidden]
Date: 2009-10-31 17:50:42
Author: jofaber
Date: 2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
New Revision: 57263
URL: http://svn.boost.org/trac/boost/changeset/57263
Log:
Added class template interval_bitset to itl_xt. Added tests and docs. Stable {msvc-9.0} 
Added:
   sandbox/itl/boost/itl_xt/bits.hpp   (contents, props changed)
   sandbox/itl/boost/itl_xt/interval_bitset.hpp   (contents, props changed)
   sandbox/itl/boost/itl_xt/meta_log.hpp   (contents, props changed)
   sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp   (contents, props changed)
   sandbox/itl/boost/validate/laws/algo_equivalence.hpp   (contents, props changed)
   sandbox/itl/libs/itl/example/vc9_itl_examples.sln   (contents, props changed)
   sandbox/itl/libs/itl/test/vc9_fast_tests.sln   (contents, props changed)
   sandbox/itl/libs/itl/test/vc9_slow_tests.sln   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_itv_bitset_/
   sandbox/itl/libs/validate/example/labat_itv_bitset_/labat_itv_bitset.cpp   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj   (contents, props changed)
   sandbox/itl/libs/validate/example/vc9_validate_examples.sln   (contents, props changed)
   sandbox/itl/libs/validate/test/test_interval_bitset_/
   sandbox/itl/libs/validate/test/test_interval_bitset_/test_interval_bitset.cpp   (contents, props changed)
   sandbox/itl/libs/validate/test/test_interval_bitset_/vc9_test_interval_bitmap.vcproj   (contents, props changed)
   sandbox/itl/libs/validate/test/vc9_validate_tests.sln   (contents, props changed)
Removed:
   sandbox/itl/libs/itl/example/vc9_examples.sln
Text files modified: 
   sandbox/itl/boost/itl/gregorian.hpp                                                                           |    46 ++++++++++++++++----------              
   sandbox/itl/boost/itl/iterator.hpp                                                                            |     1                                         
   sandbox/itl/boost/itl/ptime.hpp                                                                               |    35 +++++++++-----------                    
   sandbox/itl/boost/itl/rational.hpp                                                                            |    12 ++++++                                  
   sandbox/itl/boost/itl/type_traits/difference.hpp                                                              |    21 ------------                            
   sandbox/itl/boost/itl/type_traits/is_continuous.hpp                                                           |     9 -----                                   
   sandbox/itl/boost/itl/type_traits/neutron.hpp                                                                 |    33 -------------------                     
   sandbox/itl/boost/itl/type_traits/size.hpp                                                                    |    21 ------------                            
   sandbox/itl/boost/itl_xt/bits_gentor.hpp                                                                      |     4 -                                       
   sandbox/itl/boost/validate/driver/bit_collector_driver.hpp                                                    |     2                                         
   sandbox/itl/boost/validate/driver/itl_driver.hpp                                                              |    19 ++++++++++                              
   sandbox/itl/boost/validate/driver/itl_set_driver.hpp                                                          |     4 +                                       
   sandbox/itl/boost/validate/gentor/gentorprofile.hpp                                                           |    26 ++++++++++----                          
   sandbox/itl/boost/validate/gentor/randomgentor.hpp                                                            |    60 ++++++++++++++++++++++++++++++++--      
   sandbox/itl/boost/validate/type/bits.hpp                                                                      |    14 ++++++-                                 
   sandbox/itl/boost/validate/type/nat.hpp                                                                       |    45 +++++++++++++++-----------              
   sandbox/itl/libs/itl/doc/projects.qbk                                                                         |    25 +++++++++-----                          
   sandbox/itl/libs/itl/example/large_bitset_/bits.hpp                                                           |    16 ++++----                                
   sandbox/itl/libs/itl/example/large_bitset_/large_bitset.cpp                                                   |    12 ++----                                  
   sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp                                                   |    68 ++++++++++++++++++++--------------------
   sandbox/itl/libs/itl/example/large_bitset_/vc9_large_bitset.vcproj                                            |     6 ++                                      
   sandbox/itl/libs/itl/example/month_and_week_grid_/month_and_week_grid.cpp                                     |    12 +++---                                  
   sandbox/itl/libs/itl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj                              |    10 -----                                   
   sandbox/itl/libs/itl/example/party_/party.cpp                                                                 |     2 +                                       
   sandbox/itl/libs/itl/example/std_transform_/vc9_std_transform.vcproj                                          |     8 ++++                                    
   sandbox/itl/libs/itl/example/user_groups_/user_groups.cpp                                                     |     2                                         
   sandbox/itl/libs/itl/example/user_groups_/vc9_user_groups.vcproj                                              |    10 -----                                   
   sandbox/itl/libs/itl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj                               |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj                   |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj       |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj                 |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj                               |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj                   |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj                   |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj |     4 --                                      
   sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj     |     4 --                                      
   sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp                                                        |    27 +++++++--------                         
   sandbox/itl/libs/itl/test/test_combinable_/vc9_test_combinable.vcproj                                         |     4 --                                      
   sandbox/itl/libs/itl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj                         |     4 --                                      
   sandbox/itl/libs/itl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj       |     4 --                                      
   sandbox/itl/libs/itl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj       |     4 --                                      
   sandbox/itl/libs/itl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj             |     4 --                                      
   sandbox/itl/libs/itl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj           |     4 --                                      
   sandbox/itl/libs/itl_xt/test/meta_functors_/meta_functors.cpp                                                 |    35 ++++----------------                    
   sandbox/itl/libs/validate/example/Jamfile.v2                                                                  |    11 ++++++                                  
   sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp                                              |    26 +++++++-------                          
   sandbox/itl/libs/validate/test/Jamfile.v2                                                                     |     3 +                                       
   sandbox/itl/libs/validate/test/test_bit_collector_/vc9_test_bit_collector.vcproj                              |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_collector_/vc9_test_collector.vcproj                                      |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_itl_set_/vc9_test_itl_set.vcproj                                          |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_map_copy_conformity_/vc9_test_map_copy_conformity.vcproj                  |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_map_order_/vc9_test_map_order.vcproj                                      |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_set_copy_conformity_/vc9_test_set_copy_conformity.vcproj                  |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_set_order_/vc9_test_set_order.vcproj                                      |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_signed_quantifier_/vc9_test_signed_quantifier.vcproj                      |    24 --------------                          
   sandbox/itl/libs/validate/test/test_unsigned_quantifier_/vc9_test_unsigned_quantifier.vcproj                  |    36 ---------------------                   
   sandbox/itl/libs/validate/test/test_val_relations_/vc9_test_val_relations.vcproj                              |    36 ---------------------                   
   58 files changed, 323 insertions(+), 714 deletions(-)
Modified: sandbox/itl/boost/itl/gregorian.hpp
==============================================================================
--- sandbox/itl/boost/itl/gregorian.hpp	(original)
+++ sandbox/itl/boost/itl/gregorian.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -13,29 +13,39 @@
 #include <sstream>
 
 #include <boost/date_time/gregorian/gregorian.hpp>
+#include <boost/itl/type_traits/neutron.hpp>
+#include <boost/itl/type_traits/difference.hpp>
+#include <boost/itl/type_traits/size.hpp>
 
-#ifdef ITL_NEUTRONS_PROVIDED
-#pragma message("error: No neutral element provided for type boost::gregorian::date")
-#pragma message(".. please #include <boost/itl/gregorian.hpp> PRIOR TO other itl/* classes")
-#endif
-
-#ifdef ITL_DIFFERENCE_TYPES_PROVIDED
-#pragma message("error: No difference type provided for type boost::gregorian::date")
-#pragma message(".. please #include <boost/itl/gregorian.hpp> PRIOR TO other itl/* classes")
-#endif
+namespace boost{namespace itl
+{
+    template<> 
+    inline boost::gregorian::date neutron<boost::gregorian::date>::value()
+    { 
+        return boost::gregorian::date(boost::gregorian::min_date_time); 
+    }
 
-#ifdef ITL_SIZE_TYPES_PROVIDED
-#pragma message("error: No size type provided for type boost::gregorian::date")
-#pragma message(".. please #include <boost/itl/gregorian.hpp> PRIOR TO other itl/* classes")
-#endif
+    template<> 
+    struct neutron<boost::gregorian::date_duration>
+    {
+        static boost::gregorian::date_duration value()
+        { 
+            return boost::gregorian::date(boost::gregorian::min_date_time) 
+                 - boost::gregorian::date(boost::gregorian::min_date_time); 
+        }
+    };
+
+    template<> 
+    struct difference<boost::gregorian::date> 
+    { typedef boost::gregorian::date_duration type; };  
+
+    template<> 
+    struct size<boost::gregorian::date> 
+    { typedef boost::gregorian::date_duration type; };  
 
-#define ITL_NEEDS_GREGORIAN_DATE_NEUTRON_VALUE
-#define ITL_NEEDS_GREGORIAN_DATE_DIFFERENCE_TYPE
-#define ITL_NEEDS_GREGORIAN_DATE_SIZE_TYPE
 
-namespace boost{namespace itl
-{
 
+    // ------------------------------------------------------------------------
     boost::gregorian::date operator ++(boost::gregorian::date& x)
     {
         return x += boost::gregorian::date::duration_type::unit();
Modified: sandbox/itl/boost/itl/iterator.hpp
==============================================================================
--- sandbox/itl/boost/itl/iterator.hpp	(original)
+++ sandbox/itl/boost/itl/iterator.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -9,6 +9,7 @@
 #define BOOST_ITL_ITERATOR_HPP_JOFA_091003
 
 #include <iterator>
+#include <boost/config/warning_disable.hpp>
 
 namespace boost{namespace itl
 {
Modified: sandbox/itl/boost/itl/ptime.hpp
==============================================================================
--- sandbox/itl/boost/itl/ptime.hpp	(original)
+++ sandbox/itl/boost/itl/ptime.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -20,28 +20,25 @@
 #include <sstream>
 
 #include <boost/date_time/posix_time/posix_time.hpp>
-
-#ifdef ITL_NEUTRONS_PROVIDED
-#pragma message("error: No neutral element provided for type boost::posix_time::ptime")
-#pragma message(".. please #include <boost/itl/ptime.hpp> PRIOR TO other itl/* classes")
-#endif
-
-#ifdef ITL_DIFFERENCE_TYPES_PROVIDED
-#pragma message("error: No difference type provided for type boost::posix_time::ptime")
-#pragma message(".. please #include <boost/itl/ptime.hpp> PRIOR TO other itl/* classes")
-#endif
-
-#ifdef ITL_SIZE_TYPES_PROVIDED
-#pragma message("error: No size type provided for type boost::posix_time::ptime")
-#pragma message(".. please #include <boost/itl/ptime.hpp> PRIOR TO other itl/* classes")
-#endif
-
-#define ITL_NEEDS_POSIX_TIME_PTIME_NEUTRON_VALUE
-#define ITL_NEEDS_POSIX_TIME_PTIME_DIFFERENCE_TYPE
-#define ITL_NEEDS_POSIX_TIME_PTIME_SIZE_TYPE
+#include <boost/itl/type_traits/neutron.hpp>
+#include <boost/itl/type_traits/difference.hpp>
+#include <boost/itl/type_traits/size.hpp>
 
 namespace boost{namespace itl
 {
+    template<> 
+    inline boost::posix_time::ptime neutron<boost::posix_time::ptime>::value()
+    { 
+        return boost::posix_time::ptime(boost::posix_time::min_date_time); 
+    }
+
+    template<> 
+    struct difference<boost::posix_time::ptime> 
+    { typedef boost::posix_time::time_duration type; };  
+
+    template<> 
+    struct size<boost::posix_time::ptime> 
+    { typedef boost::posix_time::time_duration type; };  
 
     // ------------------------------------------------------------------------
     boost::posix_time::ptime operator ++(boost::posix_time::ptime& x)
Modified: sandbox/itl/boost/itl/rational.hpp
==============================================================================
--- sandbox/itl/boost/itl/rational.hpp	(original)
+++ sandbox/itl/boost/itl/rational.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -18,8 +18,18 @@
 #endif
 
 #include <boost/rational.hpp>
+#include <boost/itl/type_traits/is_continuous.hpp>
+
+namespace boost{namespace itl
+{
+	template<class Integral> 
+	struct is_continuous<boost::rational<Integral> >
+	{
+		typedef is_continuous<boost::rational<Integral> > type;
+		BOOST_STATIC_CONSTANT(bool, value = true);
+	};
+}} // namespace itl boost
 
-#define ITL_NEEDS_RATIONAL_IS_CONTINUOUS
 
 #endif
 
Modified: sandbox/itl/boost/itl/type_traits/difference.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/difference.hpp	(original)
+++ sandbox/itl/boost/itl/type_traits/difference.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -8,33 +8,12 @@
 #ifndef BOOST_ITL_TYPE_TRAITS_DIFFERENCE_HPP_JOFA_080911
 #define BOOST_ITL_TYPE_TRAITS_DIFFERENCE_HPP_JOFA_080911
 
-// I DO NOT #include boost/itl/itl_<date_time_adapter>.hpp here, because it
-// HAS TO be included by client code prior to this location.
-
 namespace boost{ namespace itl
 {
-    template <class Type> struct difference;
-
-#ifdef ITL_NEEDS_GREGORIAN_DATE_DIFFERENCE_TYPE
-#define ITL_HAS_GREGORIAN_DATE_DIFFERENCE_TYPE
-    template<> 
-    struct difference<boost::gregorian::date> 
-    { typedef boost::gregorian::date_duration type; };  
-#endif 
-
-#ifdef ITL_NEEDS_POSIX_TIME_PTIME_DIFFERENCE_TYPE
-#define ITL_HAS_POSIX_TIME_PTIME_DIFFERENCE_TYPE
-    template<> 
-    struct difference<boost::posix_time::ptime> 
-    { typedef boost::posix_time::time_duration type; };  
-#endif
-
     template <class Type> struct difference{ typedef Type type; };
 
 }} // namespace boost itl
 
-#define ITL_DIFFERENCE_TYPES_PROVIDED
-
 #endif
 
 
Modified: sandbox/itl/boost/itl/type_traits/is_continuous.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_continuous.hpp	(original)
+++ sandbox/itl/boost/itl/type_traits/is_continuous.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -39,15 +39,6 @@
         BOOST_STATIC_CONSTANT(bool, value = true);
     };
 
-#ifdef ITL_NEEDS_RATIONAL_IS_CONTINUOUS
-#define ITL_HAS_RATIONAL_IS_CONTINUOUS
-    template<class Integral> 
-    struct is_continuous<boost::rational<Integral> >
-    {
-        typedef is_continuous<boost::rational<Integral> > type;
-        BOOST_STATIC_CONSTANT(bool, value = true);
-    };
-#endif
 
     template <class Type> struct is_continuous
     {
Modified: sandbox/itl/boost/itl/type_traits/neutron.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/neutron.hpp	(original)
+++ sandbox/itl/boost/itl/type_traits/neutron.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -10,9 +10,6 @@
 
 #include <boost/itl/type_traits/type_to_string.hpp>
 
-// I DO NOT #include boost/itl/itl_<date_time_adapter>.hpp here, because it
-// HAS TO be included by client code prior to this location.
-
 namespace boost{ namespace itl
 {
     template <class Type> struct neutron
@@ -21,34 +18,6 @@
         Type operator()()const { return value(); }
     };
 
-#ifdef ITL_NEEDS_GREGORIAN_DATE_NEUTRON_VALUE
-#define ITL_HAS_GREGORIAN_DATE_NEUTRON_VALUE
-    template<> 
-    inline boost::gregorian::date neutron<boost::gregorian::date>::value()
-    { 
-        return boost::gregorian::date(boost::gregorian::min_date_time); 
-    }
-
-    template<> 
-    struct neutron<boost::gregorian::date_duration>
-    {
-        static boost::gregorian::date_duration value()
-        { 
-            return boost::gregorian::date(boost::gregorian::min_date_time) 
-                 - boost::gregorian::date(boost::gregorian::min_date_time); 
-        }
-    };
-#endif
-
-#ifdef ITL_NEEDS_POSIX_TIME_PTIME_NEUTRON_VALUE
-#define ITL_HAS_POSIX_TIME_PTIME_NEUTRON_VALUE
-    template<> 
-    inline boost::posix_time::ptime neutron<boost::posix_time::ptime>::value()
-    { 
-        return boost::posix_time::ptime(boost::posix_time::min_date_time); 
-    }
-#endif
-
     template <class Type>
     inline Type neutron<Type>::value()
     { 
@@ -60,8 +29,6 @@
 
 }} // namespace boost itl
 
-#define ITL_NEUTRONS_PROVIDED
-
 #endif
 
 
Modified: sandbox/itl/boost/itl/type_traits/size.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/size.hpp	(original)
+++ sandbox/itl/boost/itl/type_traits/size.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -8,32 +8,11 @@
 #ifndef BOOST_ITL_TYPE_TRAITS_SIZE_HPP_JOFA_080911
 #define BOOST_ITL_TYPE_TRAITS_SIZE_HPP_JOFA_080911
 
-// I DO NOT #include boost/itl/itl_<date_time_adapter>.hpp here, because it
-// HAS TO be included by client code prior to this location.
-
 namespace boost{ namespace itl
 {
-    template <class Type> struct size;
-
-#ifdef ITL_NEEDS_GREGORIAN_DATE_SIZE_TYPE
-#define ITL_HAS_GREGORIAN_DATE_SIZE_TYPE
-    template<> 
-    struct size<boost::gregorian::date> 
-    { typedef boost::gregorian::date_duration type; };  
-#endif 
-
-#ifdef ITL_NEEDS_POSIX_TIME_PTIME_SIZE_TYPE
-#define ITL_HAS_POSIX_TIME_PTIME_SIZE_TYPE
-    template<> 
-    struct size<boost::posix_time::ptime> 
-    { typedef boost::posix_time::time_duration type; };  
-#endif
-
     template <class Type> struct size{ typedef std::size_t type; };
 }} // namespace boost itl
 
-#define ITL_SIZE_TYPES_PROVIDED
-
 #endif
 
 
Added: sandbox/itl/boost/itl_xt/bits.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl_xt/bits.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,235 @@
+/*-----------------------------------------------------------------------------+    
+Author: Joachim Faulhaber
+Copyright (c) 2009-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_ITL_XT_BITS_HPP_JOFA_091023
+#define BOOST_ITL_XT_BITS_HPP_JOFA_091023
+
+#include <limits>
+#include <boost/operators.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/itl_xt/meta_log.hpp>
+#include <boost/itl/type_traits/type_to_string.hpp>
+#include <boost/itl/type_traits/to_string.hpp>
+#include <boost/itl/type_traits/is_set.hpp>
+#include <boost/itl/detail/relation_state.hpp>
+
+namespace boost{namespace itl
+{
+
+typedef short bit_range_type;
+
+template<class NaturalT> class bits
+	: equality_comparable  < bits<NaturalT>
+    , less_than_comparable < bits<NaturalT>
+    , incrementable        < bits<NaturalT>
+    , decrementable        < bits<NaturalT>
+    , addable              < bits<NaturalT>
+    , orable               < bits<NaturalT>
+    , subtractable         < bits<NaturalT>
+    , andable              < bits<NaturalT>
+    , xorable              < bits<NaturalT>
+
+    , addable2             < bits<NaturalT>, bit_range_type
+    , orable2              < bits<NaturalT>, bit_range_type
+    , subtractable2        < bits<NaturalT>, bit_range_type
+    , andable2             < bits<NaturalT>, bit_range_type
+    , xorable2             < bits<NaturalT>, bit_range_type
+      > > > > > > > > > > >  >  >  >
+    //^ & - | + ^ & - | + ++ -- < ==
+	//element   container
+{
+public:
+    typedef NaturalT         word_type;
+	typedef bit_range_type   bit_type;
+    typedef bit_type         element_type; // pretty short: 0 <= max < digits
+    typedef bit_type         size_type;
+	BOOST_STATIC_CONSTANT(bit_type, digits = std::numeric_limits<NaturalT>::digits);
+
+    bits():_bits(){}
+    explicit bits(word_type value):_bits(value){}
+
+    word_type word()const{ return _bits; }
+
+	bits&       add(bit_type value){_bits |=  (1 << value); return *this; }
+	bits&  subtract(bit_type value){_bits &= ~(1 << value); return *this; }
+	bits& intersect(bit_type value){_bits &=  (1 << value); return *this; }
+	bits&      flip(bit_type value){_bits ^=  (1 << value); return *this; }
+
+	bits& operator += (bit_type value){ return       add(value); }
+	bits& operator |= (bit_type value){ return       add(value); }
+	bits& operator -= (bit_type value){ return  subtract(value); }
+	bits& operator &= (bit_type value){ return intersect(value); }
+	bits& operator ^= (bit_type value){ return      flip(value); }
+
+    bits& operator += (const bits& value){_bits |= value._bits; return *this;}
+    bits& operator |= (const bits& value){_bits |= value._bits; return *this;}
+    bits& operator &= (const bits& value){_bits &= value._bits; return *this;}
+    bits& operator ^= (const bits& value){_bits ^= value._bits; return *this;}
+    bits  operator ~  ()const { return bits(~_bits); }
+    bool operator  <  (const bits& value)const{return _bits < value._bits;}
+    bool operator  == (const bits& value)const{return _bits == value._bits;}
+
+	bool empty()const { return _bits == 0; }
+	bool contains(element_type element)const { return 0 != ((1 << element) & _bits); }
+	bool contains(const bits& sub)const { return inclusion::subset==inclusion_compare(sub,*this); }
+	size_type cardinality()const{ return bitcount::count<word_type, digits>::apply(_bits); }
+	size_type size()const       { return cardinality(); }
+
+private:
+    word_type _bits;
+};
+
+typedef unsigned int    nat; 
+typedef boost::uint8_t  nat8;
+typedef boost::uint16_t nat16;
+typedef boost::uint32_t nat32; 
+typedef boost::uint64_t nat64; 
+
+typedef bits<nat8>  bits8;
+typedef bits<nat16> bits16;
+typedef bits<nat32> bits32;
+typedef bits<nat64> bits64;
+
+template<class NaturalT>
+int inclusion_compare(itl::bits<NaturalT> left, itl::bits<NaturalT> right)
+{
+    if(0 ==(left.word() & right.word())) return inclusion::unrelated;
+    else if(left.word() < right.word() ) return inclusion::subset;
+    else if(left.word() > right.word() ) return inclusion::superset;
+    else                                     return inclusion::equal;
+}
+
+
+template<class CharType, class CharTraits, class NaturalT>
+std::basic_ostream<CharType, CharTraits>& operator <<
+(std::basic_ostream<CharType, CharTraits>& stream, const itl::bits<NaturalT>& object)
+{
+    return stream << object.word();
+}
+
+namespace bitcount
+{
+
+static unsigned char table[] =
+{
+	0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
+	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
+	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
+	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
+	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
+	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
+	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
+	3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
+};
+
+template<typename WordT, bit_range_type Digits>
+struct count
+{
+	typedef WordT                   word_type;
+	typedef count<word_type,Digits> type;
+
+	static bit_range_type apply(WordT value);
+};
+
+template<>
+struct count<nat8, 8>
+{
+	typedef nat8               word_type;
+	typedef count<word_type,8> type;
+
+	static bit_range_type apply(word_type value){ return table[value];}
+};
+
+template<>
+struct count<nat16, 16>
+{
+	typedef nat16               word_type;
+	typedef count<word_type,16> type;
+
+	static bit_range_type apply(word_type value)
+	{ 
+		return table[ value        & 0xff]
+			 + table[(value >>  8) & 0xff];
+	}
+};
+
+
+template<>
+struct count<nat32, 32>
+{
+	typedef nat32               word_type;
+	typedef count<word_type,32> type;
+
+	static bit_range_type apply(word_type value)
+	{ 
+		return table[ value        & 0xfful]
+			 + table[(value >>  8) & 0xfful]
+			 + table[(value >> 16) & 0xfful]
+			 + table[(value >> 24) & 0xfful];
+	}
+
+};
+
+template<>
+struct count<unsigned int, 32>
+{
+	typedef unsigned int            word_type;
+	typedef count<word_type,32> type;
+
+	static bit_range_type apply(word_type value)
+	{ 
+		return table[ value        & 0xfful]
+			 + table[(value >>  8) & 0xfful]
+			 + table[(value >> 16) & 0xfful]
+			 + table[(value >> 24) & 0xfful];
+	}
+
+};
+
+template<>
+struct count<nat64, 64>
+{
+	typedef nat64               word_type;
+	typedef count<word_type,64> type;
+
+	static bit_range_type compute(word_type value)	
+	{ 
+		return table[ value        & 0xffull]
+			 + table[(value >>  8) & 0xffull]
+			 + table[(value >> 16) & 0xffull]
+			 + table[(value >> 24) & 0xffull]
+			 + table[(value >> 32) & 0xffull]
+			 + table[(value >> 40) & 0xffull]
+			 + table[(value >> 48) & 0xffull]
+			 + table[(value >> 56) & 0xffull];
+			 ;
+	}
+};
+
+} // namespace bitcount
+
+
+template<class NaturalT>
+struct is_set<bits<NaturalT> >
+{ 
+    typedef is_set<bits<NaturalT> > type;
+    BOOST_STATIC_CONSTANT(bool, value = true); 
+};
+
+
+
+template <>struct type_to_string<itl::bits<unsigned char > >{static std::string apply(){ return "bit8";  }};
+template <>struct type_to_string<itl::bits<unsigned short> >{static std::string apply(){ return "bit16"; }};
+template <>struct type_to_string<itl::bits<unsigned int  > >{static std::string apply(){ return "bit32"; }};
+template <>struct type_to_string<itl::bits<unsigned long > >{static std::string apply(){ return "bitl32"; }};
+template <>struct type_to_string<itl::bits<unsigned long long> >{static std::string apply(){ return "bit64"; }};
+
+
+}} // namespace itl boost
+
+#endif // BOOST_ITL_XT_BITS_HPP_JOFA_091023
Modified: sandbox/itl/boost/itl_xt/bits_gentor.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/bits_gentor.hpp	(original)
+++ sandbox/itl/boost/itl_xt/bits_gentor.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -11,12 +11,11 @@
 #include <boost/itl/type_traits/to_string.hpp>
 #include <boost/itl_xt/gentorit.hpp>
 #include <boost/itl_xt/numbergentor.hpp>
-#include <boost/validate/type/bits.hpp>
+#include <boost/itl_xt/bits.hpp>
 
 namespace boost{namespace itl
 {
 
-
 template <class NaturalT> 
 class bits_gentor: public RandomGentorAT<itl::bits<NaturalT> >
 {
@@ -37,7 +36,6 @@
     itl::interval<NaturalT> _value_range;
 };
 
-
 }} // namespace itl boost
 
 #endif
Added: sandbox/itl/boost/itl_xt/interval_bitset.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl_xt/interval_bitset.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,351 @@
+/*-----------------------------------------------------------------------------+    
+Author: Joachim Faulhaber
+Copyright (c) 2009-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_ITL_XT_INTERVAL_BITSET_HPP_JOFA_091023
+#define BOOST_ITL_XT_INTERVAL_BITSET_HPP_JOFA_091023
+
+#include <iostream>                   // to organize output
+#include <boost/cstdint.hpp>          // portable boost integers
+#include <boost/operators.hpp>        // to define operators with minimal effort
+#include <boost/itl_xt/meta_log.hpp>  // a meta logarithm
+#include <boost/itl_xt/bits.hpp>      // a bitset implementation
+#include <boost/itl/interval_map.hpp> // base of large bitsets
+
+namespace boost{namespace itl
+{
+
+template 
+<
+    typename    DomainT = unsigned long, 
+	typename    BitSetT = itl::bits<unsigned long>, 
+    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT),
+    template<class, ITL_COMPARE>class Interval = boost::itl::interval,
+    ITL_ALLOC   Alloc   = std::allocator
+> 
+class interval_bitset
+    : boost::equality_comparable < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+    , boost::less_than_comparable< interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+
+    , boost::addable       < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+    , boost::orable        < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+    , boost::subtractable  < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+    , boost::andable       < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+    , boost::xorable       < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+
+    , boost::addable2      < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+    , boost::orable2       < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+    , boost::subtractable2 < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+    , boost::andable2      < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+    , boost::xorable2      < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+
+    , boost::addable2      < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, Interval<DomainT,Compare>
+    , boost::orable2       < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, Interval<DomainT,Compare>
+    , boost::subtractable2 < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, Interval<DomainT,Compare>
+    , boost::andable2      < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, Interval<DomainT,Compare>
+    , boost::xorable2      < interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, Interval<DomainT,Compare>
+      > > > > > > > > > > > > > > > > >
+    //^ & - | + ^ & - | + ^ & - | + < == 
+    //segment   element   container
+{
+public:
+    typedef boost::itl::interval_map
+        <DomainT, BitSetT, boost::itl::partial_absorber, 
+         std::less, boost::itl::inplace_bit_add, boost::itl::inplace_bit_and> interval_bitmap_type;
+
+    typedef DomainT                                       domain_type;
+    typedef DomainT                                       element_type;   // 0 ..  2^digits(element_type)-1
+    typedef DomainT                                       condensed_type; // 0 .. (2^digits(element_type)-1)/digits(word_type)
+    typedef typename BitSetT::word_type                   word_type;      // 0 ..  2^digits(word_type)-1
+	typedef typename BitSetT::bit_type                    bit_type;       // 0 .. digits(word_type)     
+    typedef BitSetT                                       bitset_type;
+    typedef BitSetT                                       data_type;
+	typedef typename std::size_t                          size_type;
+    typedef typename interval_bitmap_type::interval_type  interval_type;
+    typedef interval_type                                 segment_type;
+
+    typedef typename interval_bitmap_type::key_type       key_type;
+    typedef typename interval_bitmap_type::value_type     value_type;
+
+	typedef typename interval_bitmap_type::iterator       iterator;
+	typedef typename interval_bitmap_type::const_iterator const_iterator;
+
+	typedef typename itl::set<DomainT,Compare,Alloc>      atomized_type;
+
+public:
+    bool operator ==(const interval_bitset& rhs)const{ return _map == rhs._map; }
+    bool operator < (const interval_bitset& rhs)const{ return _map <  rhs._map; }
+
+    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 interval_bitset& rhs) {_map -= rhs._map; return *this;}
+    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 interval_type& rhs){return add(rhs);      }
+    interval_bitset& operator |=(const interval_type& rhs){return add(rhs);      }
+    interval_bitset& operator -=(const interval_type& rhs){return subtract(rhs); }
+    interval_bitset& operator &=(const interval_type& rhs){return intersect(rhs);}
+    interval_bitset& operator ^=(const interval_type& rhs){return flip(rhs);     }
+
+	interval_bitset& operator +=(const value_type& rhs) {_map += rhs; return *this;}
+
+	interval_bitset& add      (const interval_type& rhs){return segment_apply(&interval_bitset::add_,      rhs);}
+    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& 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));}
+
+	void clear(){ _map.clear(); }
+	bool empty()const{ return _map.clear(); }
+	size_type cardinality()const;
+	size_type size()const           { return cardinality(); }
+	size_type interval_count()const { return _map.interval_count(); }
+	size_type iterative_size()const { return _map.iterative_size(); }
+
+	bool contains(element_type element)const{_map(element>>shift).contains(element & mask);}
+	bool contains(const segment_type& segment)const;
+	bool contains(const interval_bitset& sub)const      { return _map.contains(sub._map); }
+	bool contained_in(const interval_bitset& super)const{ return _map.contained_in(super._map); }
+
+    void show_segments()const;
+    void show_matrix(const char off_on[2] = " 1")const;
+	std::string as_string()const{ return _map.as_string(); }
+
+	iterator       begin()     { return _map.begin(); }
+	const_iterator begin()const{ return _map.begin(); }
+	iterator       end()       { return _map.end(); }
+	const_iterator end()const  { return _map.end(); }
+
+private:                                       
+    typedef typename interval_bitmap_type::segment_type seg_type;
+
+    static const word_type                     
+        digits    = bitset_type::digits,
+        divisor   = digits,
+        shift     = log2_<divisor>::value,      
+        w1        = static_cast<word_type>(1),
+        mask      = divisor - w1,               
+        all       = ~static_cast<word_type>(0),
+        top       = w1 << (digits-w1);
+    
+	typedef itl::bits<unsigned char> PartsT;
+	enum { inner_part = 0, sub_part = 1, super_part = 2, inter_part = 4 };
+
+    typedef void (interval_bitset::*segment_combiner)(element_type, element_type, bitset_type);
+
+	word_type from_lower_to(word_type bit)const{return bit==digits-w1 ? all : (1<<(bit+1))-1;}
+    word_type to_upper_from(word_type bit)const{return bit==digits-w1 ? top : ~((1<<bit)-1); }
+
+	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(base == ceil) // [first, last] are within one bitset (chunk)
+            (this->*combine)(base, base+1, bitset_type(  to_upper_from(base_rest)
+                                                       & from_lower_to(ceil_rest)));
+        else // [first, last] spread over more than one bitset (chunk)
+        {
+            element_type mid_low = base_rest == 0   ? base   : base+1, // begin of mid part 
+                         mid_up  = ceil_rest == all ? ceil+1 : ceil  ; // end   of mid part
+
+            if(base_rest > 0)    // Bitset of base interval has to be filled from base_rest to last
+                (this->*combine)(base, base+1, bitset_type(to_upper_from(base_rest)));
+            if(ceil_rest < all)  // Bitset of ceil interval has to be filled from first to ceil_rest
+                (this->*combine)(ceil, ceil+1, bitset_type(from_lower_to(ceil_rest)));
+            if(mid_low < mid_up) // For the middle part all bits have to set.
+                (this->*combine)(mid_low, mid_up, bitset_type(all));
+        }
+        return *this;
+    }
+
+	PartsT partition(bitset_type& sub,  condensed_type& lo,
+				     bitset_type& inter,
+		             condensed_type& up, bitset_type& super,
+				     const segment_type& segment)const;
+
+	void       add_(DomainT lo, DomainT up, BitSetT bits){_map += value_type(interval_type::rightopen(lo,up), bits);}
+    void  subtract_(DomainT lo, DomainT up, BitSetT bits){_map -= value_type(interval_type::rightopen(lo,up), bits);}
+    void intersect_(DomainT lo, DomainT up, BitSetT bits){_map &= value_type(interval_type::rightopen(lo,up), bits);}
+    void      flip_(DomainT lo, DomainT up, BitSetT bits){_map ^= value_type(interval_type::rightopen(lo,up), bits);}
+
+private:
+    interval_bitmap_type _map;
+};
+
+
+template<class DomainT,	class BitSetT, ITL_COMPARE Compare, template<class, ITL_COMPARE>class Interval, ITL_ALLOC Alloc> 
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::PartsT
+interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::partition
+(
+	bitset_type& sub,  condensed_type& lo,
+    bitset_type& inter,
+    condensed_type& up, bitset_type& super,
+    const segment_type& segment
+)const
+{
+	if(segment.empty())
+		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  
+
+    if(base == ceil) // [first, last] are within one bitset
+	{
+		inter = bitset_type(to_upper_from(base_rest) & from_lower_to(ceil_rest));
+		lo = base; up = ceil;
+		return PartsT(inner_part);
+	}
+    else // [first, last] spread over more than one bitset (chunk)
+    {
+		PartsT parts;
+        lo = base_rest == 0    ? base   : base+1, // begin of mid part 
+        up = ceil_rest == mask ? ceil+1 : ceil  ; // end   of mid part
+
+		word_type dbg_all = all;
+		condensed_type dbg_up = up;
+
+        if(base_rest > 0)    // Bitset of base interval has to be filled from base_rest to last
+		{
+			sub    = bitset_type(to_upper_from(base_rest));
+			parts.add(sub_part);
+		}
+        if(ceil_rest < mask) // Bitset of ceil interval has to be filled from first to ceil_rest
+		{
+			super  = bitset_type(from_lower_to(ceil_rest));
+			parts += super_part;
+		}
+        if(lo < up) // For the middle part all bits have to be set.
+		{
+			inter  = bitset_type(all);
+			parts |= inter_part;
+		}
+        return parts;
+    }
+}
+
+
+
+template<class DomainT,	class BitSetT, ITL_COMPARE Compare, template<class, ITL_COMPARE>class Interval, ITL_ALLOC Alloc> 
+bool interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::contains(const segment_type& segment)const
+{ 
+	if(segment.empty())
+		return true; // Emptieness is contained in everything
+
+	condensed_type                 lo,         up        ;
+	bitset_type              subs,     inters,     supers;
+	PartsT parts = partition(subs, lo, inters, up, supers, segment);
+	
+	if(parts.contains(inner_part))
+		return _map(lo).contains(inters);
+	else
+	{
+		if(parts.contains(sub_part)   && !_map(lo-1).contains(subs))
+			return false;
+		if(parts.contains(super_part) && !_map(up).contains(supers))
+			return false;
+		if(parts.contains(inter_part) && !_map.contains(seg_type(interval_type::rightopen(lo,up), inters)) ) 
+			return false;
+
+		return true;
+	}
+}
+
+
+template<class DomainT,	class BitSetT, ITL_COMPARE Compare, template<class, ITL_COMPARE>class Interval, ITL_ALLOC Alloc> 
+typename interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::size_type 
+	interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::cardinality()const    
+{
+	size_type cardinality = 0;
+	ITL_const_FORALL(typename interval_bitmap_type, it_, _map)
+		cardinality += (it_->second.cardinality() * it_->first.cardinality());
+	return cardinality; 
+}
+
+
+template<class DomainT,	class BitSetT, ITL_COMPARE Compare, template<class, ITL_COMPARE>class Interval, ITL_ALLOC Alloc> 
+void interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::show_segments()const
+{
+    for(typename interval_bitmap_type::const_iterator it_ = _map.begin();
+        it_ != _map.end(); ++it_)
+    {
+        interval_type   itv  = it_->first;
+        bitset_type     bits = it_->second;
+        std::cout << itv << "->" << bits.as_string("01") << std::endl;
+    }
+}
+
+template<class DomainT,	class BitSetT, ITL_COMPARE Compare, template<class, ITL_COMPARE>class Interval, ITL_ALLOC Alloc> 
+void interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>::show_matrix(const char off_on[2] = " 1")const
+{
+    typename interval_bitmap_type::const_iterator iter = _map.begin();
+    while(iter != _map.end())
+    {
+        element_type fst = iter->first.first(), lst = iter->first.last();
+        for(element_type chunk = fst; chunk <= lst; chunk++)
+            std::cout << iter->second.as_string(off_on) << std::endl;
+        ++iter;
+    }
+}
+
+template<class DomainT,	class BitSetT, ITL_COMPARE Compare, template<class, ITL_COMPARE>class Interval, ITL_ALLOC Alloc> 
+bool is_element_equal(const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& left, 
+				      const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& right)
+{ return left == right; }
+
+
+template<class CharType, class CharTraits, 
+    class DomainT, class BitSetT, 
+    ITL_COMPARE Compare, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+std::basic_ostream<CharType, CharTraits>& operator <<
+  (std::basic_ostream<CharType, CharTraits>& stream, 
+   const interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc>& object)
+{
+    typedef interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc> ObjectT;
+    stream << "{";
+    ITL_const_FORALL(typename ObjectT, it_, object)
+        stream << "(" << it_->first << "->" << it_->second << ")";
+
+    return stream << "}";
+}
+
+
+//-----------------------------------------------------------------------------
+// type representation
+//-----------------------------------------------------------------------------
+template <class DomainT, class BitSetT, ITL_COMPARE Compare, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+struct type_to_string<itl::interval_bitset<DomainT,BitSetT,Compare,Interval,Alloc> >
+{
+    static std::string apply()
+    { 
+        return "itv_bitset<"+ type_to_string<DomainT>::apply() + ","
+                            + type_to_string<BitSetT>::apply() + ">";
+    }
+};
+
+
+}} // namespace itl boost
+
+#endif // BOOST_ITL_XT_INTERVAL_BITSET_HPP_JOFA_091023
+
+
+
Added: sandbox/itl/boost/itl_xt/meta_log.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl_xt/meta_log.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,30 @@
+/*-----------------------------------------------------------------------------+    
+Author: Joachim Faulhaber
+Copyright (c) 2009-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_ITL_XT_META_LOG_HPP_JOFA_091023
+#define BOOST_ITL_XT_META_LOG_HPP_JOFA_091023
+
+namespace boost{namespace itl
+{
+
+// A meta implementation of an the logarithm function on integrals
+template <size_t Argument, size_t Base=2>
+struct log_{ enum { value = 1 + log_<Argument/Base, Base>::value }; };
+
+template <size_t Base>struct log_<1, Base>{ enum { value = 0 }; };
+template <size_t Base>struct log_<0, Base>{ enum { value = 0 }; };
+
+template <size_t Argument>
+struct log2_{ enum { value = log_<Argument, 2>::value }; };
+
+template <size_t Argument>
+struct power2_{ enum { value = 1 << Argument }; };
+
+}} // namespace itl boost
+
+#endif // BOOST_ITL_XT_META_LOG_HPP_JOFA_091023
Modified: sandbox/itl/boost/validate/driver/bit_collector_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/bit_collector_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/bit_collector_driver.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <stdio.h>
 #include <time.h>
-#include <boost/validate/type/bits.hpp>
+#include <boost/itl_xt/bits.hpp>
 #include <boost/validate/validater/collector_validater.hpp>
 #include <boost/validate/driver/itl_driver.hpp>
 #include <boost/validate/utility.hpp>
Added: sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,77 @@
+/*-----------------------------------------------------------------------------+    
+A Law Based Test Automaton 'LaBatea'
+Author: Joachim Faulhaber
+Copyright (c) 2007-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_VALIDATE_DRIVER_INTERVAL_BITSET_DRIVER_HPP_JOFA_091027
+#define BOOST_VALIDATE_DRIVER_INTERVAL_BITSET_DRIVER_HPP_JOFA_091027
+
+#include <iostream>
+#include <stdio.h>
+#include <boost/itl_xt/interval_bitset.hpp>
+#include <boost/validate/validater/itl_set_validater.hpp>
+#include <boost/validate/validater/itl_order_validater.hpp>
+#include <boost/validate/driver/itl_driver.hpp>
+#include <boost/validate/utility.hpp>
+
+namespace boost{namespace itl
+{
+    
+    class interval_bitset_driver : public itl_driver
+    {
+    public:
+        interval_bitset_driver() { setProfile(); }
+
+        void setProfile()
+        {
+            setValid(true);
+            _freeChoice.setSize(FreeChoice::FreeChoice_size);
+            _freeChoice.setMaxWeights(100);
+            _freeChoice[FreeChoice::_1] = 20;
+            _freeChoice[FreeChoice::_2] = 20;
+            _freeChoice[FreeChoice::_3] = 20;
+            _freeChoice[FreeChoice::_4] = 20;
+            _freeChoice[FreeChoice::_5] = 20;
+            setRootTypeNames();
+            _freeChoice.init();
+
+            if(!_freeChoice.is_consistent())
+            {
+                setValid(false);
+                std::cout << _freeChoice.inconsitencyMessage("interval_bitset_driver::setProfile()") << std::endl;
+            }
+        }
+
+
+        algebra_validater* chooseValidater()
+        {
+            int freeChoice         = _freeChoice.some();
+
+            switch(freeChoice)
+            {
+            case FreeChoice::_1:
+				return new itl_set_validater< interval_bitset<int, bits<unsigned char> > >; 
+            case FreeChoice::_2:
+				return new itl_order_validater< interval_bitset<int, bits<unsigned short> > >; 
+            case FreeChoice::_3:
+				return new itl_set_validater< interval_bitset<int, bits<unsigned int> > >; 
+            case FreeChoice::_4:
+				return new itl_order_validater< interval_bitset<int, bits<unsigned long> > >; 
+            case FreeChoice::_5:
+				return new itl_order_validater< interval_bitset<int, bits<unsigned long long> > >; 
+            default: return choiceError(ITL_LOCATION("freeChoice:\n"), freeChoice, _freeChoice);
+            } //switch()
+
+            return NULL; //just to please the compiler ;)
+        }
+
+    };
+
+
+}} // namespace itl boost
+
+#endif // BOOST_VALIDATE_DRIVER_INTERVAL_BITSET_DRIVER_HPP_JOFA_091027
Modified: sandbox/itl/boost/validate/driver/itl_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_driver.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -43,11 +43,18 @@
         enum NeutronHandlerTypes { partial_absorber, partial_enricher, total_absorber, total_enricher, NeutronHandlerTypes_size };
     }
 
+    namespace FreeChoice 
+    {
+        enum FreeChoice { _1, _2, _3, _4, _5, FreeChoice_size };
+    }
+
+
     namespace inform
     {
         enum informs { never=0, rarely, frequently };
     }
-    
+
+
     class itl_driver
     {
     public:
@@ -227,6 +234,15 @@
             type_names[NeutronHandlerType::total_enricher]          = "total_enricher"; 
             _neutronizerChoice.setTypeNames(type_names);
         }
+        void setFreeChoiceNames()
+        {
+            std::vector<std::string> type_names(FreeChoice::FreeChoice_size);
+            type_names[FreeChoice::_1]        = "_1"; 
+            type_names[FreeChoice::_2]        = "_2"; 
+            type_names[FreeChoice::_3]        = "_3"; 
+            type_names[FreeChoice::_4]        = "_4"; 
+            _codomainChoice.setTypeNames(type_names);
+        }
 
         algebra_validater* choiceError(const std::string& location, int value, const ChoiceT& choice)
         {
@@ -254,6 +270,7 @@
         ChoiceT            _domainChoice;
         ChoiceT            _codomainChoice;
         ChoiceT            _neutronizerChoice;
+		ChoiceT            _freeChoice;
 
     private:
         algebra_validater* _validater;
Modified: sandbox/itl/boost/validate/driver/itl_set_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_set_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_set_driver.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -7,7 +7,8 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef BOOST_VALIDATE_DRIVER_ITL_SET_DRIVER_HPP_JOFA_080405
+#define BOOST_VALIDATE_DRIVER_ITL_SET_DRIVER_HPP_JOFA_080405
 
 #include <iostream>
 #include <stdio.h>
@@ -142,3 +143,4 @@
 
 }} // namespace itl boost
 
+#endif // BOOST_VALIDATE_DRIVER_ITL_SET_DRIVER_HPP_JOFA_080405
Modified: sandbox/itl/boost/validate/gentor/gentorprofile.hpp
==============================================================================
--- sandbox/itl/boost/validate/gentor/gentorprofile.hpp	(original)
+++ sandbox/itl/boost/validate/gentor/gentorprofile.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -30,8 +30,8 @@
 
         void set_range_int(int lwb, int upb) 
         { _range_int = interval<int>::rightopen(lwb, upb); }
-        void set_range_nat(nat lwb, nat upb) 
-        { _range_nat = interval<nat>::rightopen(lwb, upb); }
+        void set_range_nat(cnat lwb, cnat upb) 
+        { _range_nat = interval<cnat>::rightopen(lwb, upb); }
         void set_range_double(double lwb, double upb) 
         { _range_double = interval<double>::rightopen(lwb, upb); }
         void set_range_ContainerSize(int lwb, int upb) 
@@ -51,7 +51,7 @@
         void set_debug_slowdown(double factor){ _debug_slowdown = factor; }
 
         interval<int>       range_int()             { return _range_int; }
-        interval<nat>       range_nat()             { return _range_nat; }
+        interval<cnat>      range_nat()             { return _range_nat; }
         interval<double>    range_double()          { return _range_double; }
         interval<int>       range_ContainerSize()   { return _range_ContainerSize; }
         interval<int>       range_interval_int()    { return _range_interval_int; }
@@ -75,7 +75,7 @@
 
     private:
         interval<int>       _range_int;
-        interval<nat>       _range_nat;
+        interval<cnat>       _range_nat;
         interval<double>    _range_double;
         interval<int>       _range_ContainerSize;
 
@@ -109,7 +109,7 @@
     // specific interface ---------------------------------------------------------
     public:
         void set_range_int(int lwb, int upb)           { m_profile.set_range_int(lwb, upb); }
-        void set_range_nat(nat lwb, nat upb)           { m_profile.set_range_nat(lwb, upb); }
+        void set_range_nat(cnat lwb, cnat upb)         { m_profile.set_range_nat(lwb, upb); }
         void set_range_double(double lwb, double upb)  { m_profile.set_range_double(lwb, upb); }
         void set_range_ContainerSize(int lwb, int upb) { m_profile.set_range_ContainerSize(lwb, upb); }
         void set_range_interval_int(int lwb, int upb)  { m_profile.set_range_interval_int(lwb, upb); }
@@ -122,7 +122,7 @@
         void set_laws_per_cycle(int count)              { m_profile.set_laws_per_cycle(count); }
 
         interval<int>       range_int()                { return m_profile.range_int();           }
-        interval<nat>       range_nat()                { return m_profile.range_nat();           }
+        interval<cnat>      range_nat()                { return m_profile.range_nat();           }
         interval<double>    range_double()             { return m_profile.range_double();        }
         interval<int>       range_ContainerSize(){ return m_profile.range_ContainerSize(); }
         interval<int>       range_interval_int()       { return m_profile.range_interval_int();  }
@@ -164,9 +164,19 @@
     };
 
     template<>
-    struct GentorProfileSgl_numeric_range<nat>
+    struct GentorProfileSgl_numeric_range<unsigned int>
     {
-        static interval<nat> get() 
+        static interval<unsigned int> get() 
+        {
+			interval<cnat> inter_val = GentorProfileSgl::it()->range_nat();
+			return interval<unsigned int>::rightopen(inter_val.lower(), inter_val.upper());
+		}
+    };
+
+    template<>
+    struct GentorProfileSgl_numeric_range<cnat>
+    {
+        static interval<cnat> get() 
         { return GentorProfileSgl::it()->range_nat(); }
     };
 
Modified: sandbox/itl/boost/validate/gentor/randomgentor.hpp
==============================================================================
--- sandbox/itl/boost/validate/gentor/randomgentor.hpp	(original)
+++ sandbox/itl/boost/validate/gentor/randomgentor.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -31,6 +31,7 @@
 #include <boost/itl/split_interval_set.hpp>
 #include <boost/itl/interval_map.hpp>
 #include <boost/itl/split_interval_map.hpp>
+#include <boost/itl_xt/interval_bitset.hpp>
 #ifdef USE_ITL_TREE
 #include <boost/itl/tree/tree.hpp>
 #endif
@@ -43,7 +44,7 @@
     // -------------------------------------------------------------------------
     template <class ValueT> class RandomGentor;
     template <> class RandomGentor<int> : public NumberGentorT<int> {};
-    template <> class RandomGentor<nat> : public NumberGentorT<nat> {};
+    template <> class RandomGentor<cnat> : public NumberGentorT<cnat> {};
     template <> class RandomGentor<double> : public NumberGentorT<double> {};
 
     // -------------------------------------------------------------------------
@@ -170,6 +171,12 @@
     class RandomGentor<interval_map<NumericDomainT,itl::bits<BitsT>,Neutronizer,Compare,Combine,Section> > : 
         public MapGentorT<interval_map<NumericDomainT,itl::bits<BitsT>,Neutronizer,Compare,Combine,Section> > {};
 
+    // ------------------------------------------------------------------------
+    template <class NumericDomainT, class BitsT>
+    class RandomGentor<interval_bitset<NumericDomainT,itl::bits<BitsT> > > : 
+        public MapGentorT<interval_bitset<NumericDomainT,itl::bits<BitsT> > > {};
+    // ------------------------------------------------------------------------
+
     //NOTE: All trials to reduce code replication for RandomGentor
     // and Calibrater by introducing a fancy 
     // template template IntervalMap shipwrecked due to compilers 
@@ -218,9 +225,9 @@
     };
 
     template <> 
-    struct Calibrater<nat, RandomGentor>
+    struct Calibrater<cnat, RandomGentor>
     {
-        static void apply(RandomGentor<nat>& gentor)
+        static void apply(RandomGentor<cnat>& gentor)
         {
             // Set the range within which the sizes of the generated object varies.
             gentor.setRange(GentorProfileSgl::it()->range_nat());
@@ -530,6 +537,29 @@
     };
 
 
+  //  template <class IntegralT, class BitSetT> 
+  //  struct Calibrater<interval_bitset<IntegralT, BitSetT>, RandomGentor>
+  //  {
+  //      //static void apply(RandomGentor<interval_bitset<IntegralT, BitSetT> >& gentor) 
+  //      //{
+  //      //    gentor.setRangeOfSampleSize(GentorProfileSgl::it()->range_ContainerSize());
+  //      //    ItvGentorT<IntegralT>* itvGentor = new ItvGentorT<IntegralT>;
+  //      //    interval<IntegralT> valRange = GentorProfileSgl_numeric_range<IntegralT>::get();
+  //      //    itvGentor->setValueRange(valRange.lower(), valRange.upper());
+  //      //    itvGentor->setMaxIntervalLength(GentorProfileSgl::it()->maxIntervalLength());
+  //      //    gentor.setDomainGentor(itvGentor);
+  //      //}
+		////JODO 
+  //      static void apply(RandomGentor<interval_bitset<IntegralT,BitSetT> >& gentor) 
+  //      {
+  //          gentor.setRangeOfSampleSize(GentorProfileSgl::it()->range_ContainerSize());
+  //          NumberGentorT<IntegralT>* domainGentor = new NumberGentorT<IntegralT>;
+  //          domainGentor->setRange(GentorProfileSgl::it()->range_int());
+  //          gentor.setDomainGentor(domainGentor);
+  //      }
+  //  };
+
+
     //--------------------------------------------------------------------------
     // itl::tree
     //--------------------------------------------------------------------------
@@ -616,7 +646,6 @@
         }
     };
 
-
     //----------------------------------------------------------------------------
     // itl::interval_map<DomainT,CodomainT,Neutronizer>
     //----------------------------------------------------------------------------
@@ -775,5 +804,28 @@
     };
     // ---------------------------------------------------------------------------
 
+    template <typename NumericDomainT, typename BitsT>
+    struct Calibrater<interval_bitset<NumericDomainT,itl::bits<BitsT> >, RandomGentor>
+    {
+        static void apply(RandomGentor<interval_bitset<NumericDomainT,itl::bits<BitsT> > >& gentor)
+        {
+            gentor.setRangeOfSampleSize(GentorProfileSgl::it()->range_ContainerSize());
+
+            // If it is a container: (Create and) Pass the generator(s) for their contents
+            // NumberGentorT<int> intGentor;
+            ItvGentorT<NumericDomainT>* itvGentor = new ItvGentorT<NumericDomainT>;
+            interval<NumericDomainT> valRange = GentorProfileSgl_numeric_range<NumericDomainT>::get();
+            itvGentor->setValueRange(valRange.lower(), valRange.upper());
+            itvGentor->setMaxIntervalLength(GentorProfileSgl::it()->maxIntervalLength());
+
+            bits_gentor<BitsT>* codomainGentor = new bits_gentor<BitsT>;
+            codomainGentor->set_range(interval<BitsT>::closed(0, (std::numeric_limits<BitsT>::max)()));
+
+            gentor.setDomainGentor(itvGentor);
+            gentor.setCodomainGentor(codomainGentor);
+        }
+    };
+    // ---------------------------------------------------------------------------
+
 
 }} // namespace itl boost
Added: sandbox/itl/boost/validate/laws/algo_equivalence.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/validate/laws/algo_equivalence.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,213 @@
+/*-----------------------------------------------------------------------------+    
+A Law Based Test Automaton 'LaBatea'
+Author: Joachim Faulhaber
+Copyright (c) 2007-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_ITL_MINOR_SET_LAWS_HPP_JOFA_090821
+#define BOOST_ITL_MINOR_SET_LAWS_HPP_JOFA_090821
+
+#include <boost/itl/type_traits/value_size.hpp>
+#include <boost/itl/functors.hpp>
+#include <boost/itl/predicates.hpp>
+#include <boost/validate/laws/law.hpp>
+
+namespace boost{namespace itl
+{
+
+    template <typename Type>
+    class IntersectsDefined 
+        : public Law<IntersectsDefined<Type>, LOKI_TYPELIST_2(Type,Type), LOKI_TYPELIST_2(bool,bool)> 
+    {
+        /** is_total<T> || (intersects(a, b) == !(a & b).empty()) : Definition of intersects predicate 
+        Input  = (a := inVal1, b := inVal2)
+        Output = (lhs_result, rhs_result)
+        */
+    public:
+        std::string name()const { return "IntersectsDefined defined"; }
+        std::string formula()const { return "is_total<T> || intersects(a, b) == !(a & b).empty()"; }
+
+        std::string typeString()const
+        {
+            return "IntersectsDefined<"+type_to_string<Type>::apply()+">";
+        }
+
+    public:
+
+        bool holds()
+        {
+            // is_total<T> || intersects(a, b) == !(a & b).empty()
+            // --- left hand side ------------------------
+            bool a_intersects_b 
+                = intersects(this->template getInputValue<operand_a>(),
+                             this->template getInputValue<operand_b>());
+            // --- right hand side ------------------------
+            Type a_sec_b = this->template getInputValue<operand_a>();
+            a_sec_b &= this->template getInputValue<operand_b>();
+
+            bool a_sec_b_non_empty = !a_sec_b.empty();
+
+            this->template setOutputValue<lhs_result>(a_intersects_b);
+            this->template setOutputValue<rhs_result>(a_sec_b_non_empty);
+
+            if(is_total<Type>::value)
+                // For a total map y, y.empty() does not mean that y is empty
+                // it means that y is a null vector. In this sense total maps
+                // always intersect with themselves and with key sets.
+                return a_intersects_b == true;
+            else
+                return a_intersects_b == a_sec_b_non_empty;
+        }
+
+        bool debug_holds()
+        { 
+            // intersects(a, b) == !(a & b).empty() : Definition of intersects predicate 
+            // --- left hand side ------------------------
+            Type value_a = this->template getInputValue<operand_a>();
+            Type value_b = this->template getInputValue<operand_b>();
+            std::cout << "a = " << value_a << std::endl;
+            std::cout << "b = " << value_b << std::endl;
+            std::cout << "a&b = " << (value_a & value_b) << std::endl;
+
+            bool a_intersects_b 
+                = intersects(this->template getInputValue<operand_a>(),
+                             this->template getInputValue<operand_b>());
+            // --- right hand side ------------------------
+            Type a_sec_b = this->template getInputValue<operand_a>();
+            a_sec_b &= this->template getInputValue<operand_b>();
+
+            bool a_sec_b_non_empty = !a_sec_b.empty();
+
+            this->template setOutputValue<lhs_result>(a_intersects_b);
+            this->template setOutputValue<rhs_result>(a_sec_b_non_empty);
+
+            if(is_total<Type>::value)
+                return a_intersects_b == true;
+            else
+                return a_intersects_b == a_sec_b_non_empty;
+        }
+
+        size_t size()const 
+        { 
+            return value_size<Type>::apply(this->template getInputValue<operand_a>())+
+                   value_size<Type>::apply(this->template getInputValue<operand_b>());
+        }
+    };
+
+    template <typename Type, typename CoType>
+    class Interinclusion 
+        : public Law<Interinclusion<Type,CoType>, LOKI_TYPELIST_2(Type,CoType), LOKI_TYPELIST_1(bool)> 
+    {
+        /** a.contains(a & b)
+        Input  = (a := inVal1, b := inVal2)
+        Output = (lhs_result, rhs_result)
+        */
+    public:
+        std::string name()const { return "Interinclusion"; }
+        std::string formula()const { return "a.contains(a & b)"; }
+
+        std::string typeString()const
+        {
+            return "Interinclusion<"+  type_to_string<Type>::apply()+","
+                                    +type_to_string<CoType>::apply()+">";
+        }
+
+    public:
+
+        bool holds()
+        {
+            // a.contains(a & b)
+            Type   value_a = this->template getInputValue<operand_a>();
+            CoType value_b = this->template getInputValue<operand_b>();
+            return value_a.contains(value_a & value_b);
+        }
+
+        bool debug_holds()
+        { 
+            // a.contains(a & b)
+            Type   value_a = this->template getInputValue<operand_a>();
+            CoType value_b = this->template getInputValue<operand_b>();
+            Type   a_sec_b = value_a & value_b;
+            bool result = value_a.contains(value_a & value_b);
+            // -------------------------------------------
+            std::cout << "a = " << value_a << std::endl;
+            std::cout << "b = " << value_b << std::endl;
+            std::cout << "a&b = " << a_sec_b << std::endl;
+            std::cout << "a.contains(a&b) = " << result << std::endl;
+            // -------------------------------------------
+            value_a.contains(a_sec_b);
+
+            return result;
+        }
+
+        size_t size()const 
+        { 
+            return value_size<  Type>::apply(this->template getInputValue<operand_a>())+
+                   value_size<CoType>::apply(this->template getInputValue<operand_b>());
+        }
+    };
+
+
+    template <typename Type, typename CoType>
+    class AddendInclusion 
+        : public Law<AddendInclusion<Type,CoType>, LOKI_TYPELIST_2(Type,CoType), LOKI_TYPELIST_1(bool)> 
+    {
+        /** (a + i).contains(i)
+        Input  = (a := inVal1, i := inVal2)
+        Output = (lhs_result, rhs_result)
+        */
+    public:
+        std::string name()const { return "AddendInclusion"; }
+        std::string formula()const { return "(a + i).contains(i)"; }
+
+        std::string typeString()const
+        {
+            return "AddendInclusion<"+  type_to_string<Type>::apply()+","
+                                    +type_to_string<CoType>::apply()+">";
+        }
+
+    public:
+
+        bool holds()
+        {
+            // (a + i).contains(i)
+            Type   value_a = this->template getInputValue<operand_a>();
+            CoType value_i = this->template getInputValue<operand_b>();
+            return (value_a + value_i).contains(value_i);
+        }
+
+        bool debug_holds()
+        {
+            return holds();
+            /*
+            // a.contains(a & b)
+            Type   value_a = this->template getInputValue<operand_a>();
+            CoType value_b = this->template getInputValue<operand_b>();
+            Type   a_sec_b = value_a & value_b;
+            bool result = value_a.contains(value_a & value_b);
+            // -------------------------------------------
+            std::cout << "a = " << value_a << std::endl;
+            std::cout << "b = " << value_b << std::endl;
+            std::cout << "a&b = " << a_sec_b << std::endl;
+            std::cout << "a.contains(a&b) = " << result << std::endl;
+            // -------------------------------------------
+            value_a.contains(a_sec_b);
+
+            return result;
+            */
+        }
+
+        size_t size()const 
+        { 
+            return value_size<  Type>::apply(this->template getInputValue<operand_a>())+
+                   value_size<CoType>::apply(this->template getInputValue<operand_b>());
+        }
+    };
+
+}} // namespace itl boost
+
+#endif // BOOST_ITL_MINOR_SET_LAWS_HPP_JOFA_070411
+
Modified: sandbox/itl/boost/validate/type/bits.hpp
==============================================================================
--- sandbox/itl/boost/validate/type/bits.hpp	(original)
+++ sandbox/itl/boost/validate/type/bits.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -6,8 +6,8 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#ifndef BOOST_ITL_XT_TEST_BITS_HPP_JOFA_091009
-#define BOOST_ITL_XT_TEST_BITS_HPP_JOFA_091009
+#ifndef BOOST_ITL_LIBS_VALIDATE_TEST_BITS_HPP_JOFA_091009
+#define BOOST_ITL_LIBS_VALIDATE_TEST_BITS_HPP_JOFA_091009
 
 #include <boost/itl/type_traits/type_to_string.hpp>
 #include <boost/itl/type_traits/to_string.hpp>
@@ -20,7 +20,9 @@
 template<class NaturalT> class bits
 {
 public:
-    typedef NaturalT chunk_type;
+    typedef NaturalT    chunk_type;
+    typedef NaturalT    element_type;
+	typedef std::size_t size_type;
 
     bits():_bits(){}
     explicit bits(NaturalT value):_bits(value){}
@@ -33,6 +35,12 @@
     bool operator  <  (const bits& value)const{return _bits < value._bits;}
     bool operator  == (const bits& value)const{return _bits == value._bits;}
 
+	bool contains(element_type element)const{return 0 !=(_bits & element);} 
+	bool contains(const bits& value)const; //JODO
+	bool contained_in(const bits& value)const; //JODO
+
+	size_type cardinality()const{}
+
 private:
     NaturalT _bits;
 };
Modified: sandbox/itl/boost/validate/type/nat.hpp
==============================================================================
--- sandbox/itl/boost/validate/type/nat.hpp	(original)
+++ sandbox/itl/boost/validate/type/nat.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -13,47 +13,51 @@
 #include <stdio.h>
 #include <boost/itl/type_traits/to_string.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
+#include <boost/itl/type_traits/value_size.hpp>
 
 #define ITL_LOCATION(message) location(__FILE__,__LINE__,message)
 
 namespace boost{namespace itl
 {
 
-class nat
+class cnat
 {
 public:
-    nat(): _value(0) {}
-    nat(int val): _value(val<0 ? 0 : val){}
-    nat(const nat& val): _value(val._value){}
+    cnat(): _value(0) {}
+    cnat(int val): _value(val<0 ? 0 : val){}
+    cnat(const cnat& val): _value(val._value){}
 
     int value()const { return _value; }
 
-    nat& operator++(){ ++_value; return *this; }
-    const nat operator++(int){ nat that = *this; ++_value; return that; }
+    cnat& operator++(){ ++_value; return *this; }
+    const cnat operator++(int){ cnat that = *this; ++_value; return that; }
 
-    nat& operator--(){ if(_value > 0)--_value; return *this; }
-    const nat operator--(int){ nat that = *this; --_value; return that; }
+    cnat& operator--(){ if(_value > 0)--_value; return *this; }
+    const cnat operator--(int){ cnat that = *this; --_value; return that; }
 
-    nat& operator += (const nat& right){ _value += right._value; return *this; }
+    cnat& operator += (const cnat& right){ _value += right._value; return *this; }
 
-    nat& operator -= (const nat& right)
+    cnat& operator -= (const cnat& right)
     { 
         _value = right._value > _value ? 0 : (_value - right._value); 
         return *this; 
     }
 
-    nat& operator ^= (const nat& right) //JODO should not be required
+	/*CL
+    cnat& operator ^= (const cnat& right) //JODO should not be required
     { 
         _value ^= right._value; 
         return *this; 
     }
-    nat& operator &= (const nat& right) //JODO should not be required
+    cnat& operator &= (const cnat& right) //JODO should not be required
     { 
         _value &= right._value; 
         return *this; 
     }
+	*/
 
-    operator int()const{ return (_value); }
+    //CL operator int()const{ return (_value); }
+    operator unsigned int()const{ return (_value); }
 
     std::string as_string()const { return to_string<int>::apply(_value); }
 
@@ -61,17 +65,20 @@
     int _value;
 };
 
-//inline nat operator + (const nat& left, const nat& right){return nat(left)+=right;}
-//inline nat operator - (const nat& left, const nat& right){return nat(left)-=right;}
+//inline cnat operator + (const cnat& left, const cnat& right){return cnat(left)+=right;}
+//inline cnat operator - (const cnat& left, const cnat& right){return cnat(left)-=right;}
 
-inline bool operator == (const boost::itl::nat& left, const boost::itl::nat& right){ return left.value() == right.value(); }
-inline bool operator <  (const boost::itl::nat& left, const boost::itl::nat& right){ return left.value() < right.value(); }
+inline bool operator == (const boost::itl::cnat& left, const boost::itl::cnat& right){ return left.value() == right.value(); }
+inline bool operator <  (const boost::itl::cnat& left, const boost::itl::cnat& right){ return left.value() < right.value(); }
 
-template<>inline std::string type_to_string<nat>::apply() { return "nat"; }
+template<>inline std::string type_to_string<cnat>::apply() { return "cnat"; }
+
+template<> inline std::size_t value_size<cnat>::apply(const cnat& value) 
+{ return value; }
 
 template<class CharType, class CharTraits>
 std::basic_ostream<CharType, CharTraits> &operator<<
-(std::basic_ostream<CharType, CharTraits> &stream, itl::nat const& right)
+(std::basic_ostream<CharType, CharTraits> &stream, itl::cnat const& right)
 {
     return stream << right.value();
 }
Modified: sandbox/itl/libs/itl/doc/projects.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/projects.qbk	(original)
+++ sandbox/itl/libs/itl/doc/projects.qbk	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -62,7 +62,7 @@
 are provided by an __itv_map__ of `bitsets`:
 
 ``
-typedef interval_map<NaturalT, SomeBitSet<N>, partial_absorber,
+typedef interval_map<IntegralT, SomeBitSet<N>, partial_absorber,
                      std::less, inplace_bit_add, inplace_bit_and> IntervalBitmap;
 ``
 
@@ -92,7 +92,9 @@
 
 An `IntervalBitmap` can represent
 `N*(2^M-1)` elements, if `M` is the number of bits of the 
-unsigned integral type `NaturalT`.
+integral type `IntegralT`. Unlike bitsets, that usually
+represent ['*unsigned*] integral numbers, large_bitset may 
+range over negative numbers as well.
 There are fields where such large
 bitsets implementations are needed. E.g. for the compact
 representation of large file allocation tables.
@@ -104,7 +106,11 @@
 [section Using large_bitset]
 
 To quicken your appetite for a look at the implementation
-here are a few use cases first. Let's start large.
+here are a few use cases first. Within the examples that follow,
+we will use `nat`[^['k]] for unsigned integrals 
+and `bits`[^['k]] for bitsets containing [^['k]] bits.
+
+Let's start large.
 In the first example . . . 
 
 [import ../example/large_bitset_/large_bitset.cpp]
@@ -218,14 +224,16 @@
 `DomainT` is supposed to be an unsigned integral
 type, the bitset type `BitSetT` will be a wrapper class around an
 unsigned integral type. `BitSetT` has to implement bitwise operators
-that will be called by the functors `inplace_bit_add` and `inplace_bit_and`.
+that will be called by the functors `inplace_bit_add<BitSetT>` 
+and `inplace_bit_and<BitSetT>`.
 The type trait of interval_map is `partial_absorber`, which means
 that it is /partial/ and that empty `BitSetTs` are not stored in
 the map. This is desired and keeps the `interval_map` minimal, storing
 only bitsets, that contain at least one bit switched on. 
-Functor `inplace_bit_add` for parameter `Combine` indicates that we
+Functor template `inplace_bit_add` for parameter `Combine` indicates that we
 do not expect `operator +=` as addition but the bitwise operator
-`|=`. For parameter `Section` we expect the bitwise `&=` operator.
+`|=`. For template parameter `Section` which is instaniated by 
+`inplace_bit_and` we expect the bitwise `&=` operator.
 
 [endsect][/ section The interval_bitmap]
 
@@ -300,7 +308,7 @@
 The first template parameter `DomainT` will be instantiated with
 an unsigned integral type that defines the kind of numbers that can
 be elements of the set. Since we want to go for a large set we
-use `nat3` as default which is a 64 bit unsigned integer ranging
+use `nat64` as default which is a 64 bit unsigned integer ranging
 from `0` to `2^64-1`. As bitset parameter we also choose a 64-bit
 default. Parameters `Combine` and `Interval` are necessary to
 be passed to dependent type expressions. An allocator can be
@@ -480,8 +488,7 @@
 This completes the implementation of class template `large_bitset`.
 Using only a small amount of mostly schematic code,
 we have been able to provide a pretty powerful, self compressing
-and generally usable set type for all 
-unsigned integral domain types. 
+and generally usable set type for all integral domain types. 
 
 [endsect][/ large_bitset: Private implementation]
 
Modified: sandbox/itl/libs/itl/example/large_bitset_/bits.hpp
==============================================================================
--- sandbox/itl/libs/itl/example/large_bitset_/bits.hpp	(original)
+++ sandbox/itl/libs/itl/example/large_bitset_/bits.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -20,14 +20,14 @@
 template<class NaturalT> class bits
 {
 public:
-    typedef NaturalT chunk_type;
-    BOOST_STATIC_CONSTANT( int,      bit_count = CHAR_BIT*sizeof(NaturalT) );
-    BOOST_STATIC_CONSTANT( NaturalT, n1 = static_cast<NaturalT>(1)         );
+    typedef NaturalT word_type;
+    static const int       digits = CHAR_BIT*sizeof(NaturalT);
+    static const word_type w1     = static_cast<NaturalT>(1) ;
 
     bits():_bits(){}
-    explicit bits(NaturalT value):_bits(value){}
+    explicit bits(word_type value):_bits(value){}
 
-    NaturalT number()const{ return _bits; }
+    word_type word()const{ return _bits; }
     bits& operator |= (const bits& value){_bits |= value._bits; return *this;}
     bits& operator &= (const bits& value){_bits &= value._bits; return *this;}
     bits& operator ^= (const bits& value){_bits ^= value._bits; return *this;}
@@ -35,11 +35,11 @@
     bool operator  <  (const bits& value)const{return _bits < value._bits;}
     bool operator  == (const bits& value)const{return _bits == value._bits;}
 
-    bool contains(NaturalT element)const{ return ((n1 << element) & _bits) != 0; } 
+    bool contains(word_type element)const{ return ((w1 << element) & _bits) != 0; } 
     std::string as_string(const char off_on[2] = " 1")const;
 
 private:
-    NaturalT _bits;
+    word_type _bits;
 };
 //]
 
@@ -47,7 +47,7 @@
 std::string bits<NaturalT>::as_string(const char off_on[2])const
 {
     std::string sequence;
-    for(int bit=0; bit < bit_count; bit++)
+    for(int bit=0; bit < digits; bit++)
         sequence += contains(bit) ? off_on[1] : off_on[0];
     return sequence;
 }
Modified: sandbox/itl/libs/itl/example/large_bitset_/large_bitset.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/large_bitset_/large_bitset.cpp	(original)
+++ sandbox/itl/libs/itl/example/large_bitset_/large_bitset.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -25,10 +25,9 @@
 //[large_bitset_test_large_set_all
 void test_large()
 { 
-    const nat3 much = 0xffffffffffffffffull; // BTW nat3 is defined as boost::uint64_t
-                                             // in large_bitset.hpp
+    const nat64 much = 0xffffffffffffffffull; 
     large_bitset<> venti; // ... the largest, I can think of ;)
-    venti += interval<nat3>(0, much);
+    venti += interval<nat64>(0, much);
 
     cout << "----- Test function test_large() -----------------------------------------------\n";
     cout << "We have just turned on the awesome amount of 18,446,744,073,709,551,615 bits ;-)\n";
@@ -47,10 +46,9 @@
 //[large_bitset_test_small
 void test_small()
 {
-    large_bitset<nat, bits8> tall; // small is tall ...
-        // ... it really is, because even this 'small' large_bitset 
+    large_bitset<nat32, bits8> tall; // small is tall ...
+        // ... because even this 'small' large_bitset 
         // can represent up to 2^32-1 == 4,294,967,295 bits.
-        // BTW nat is defined as unsigned int.
 
     cout << "----- Test function test_small() -----------\n";
     cout << "-- Switch on all bits in range [0,64] ------\n";
@@ -146,7 +144,7 @@
     test_large();
     test_small();
     test_picturesque();
-    //test_set<nat3,bits64>();
+    //test_set<nat64,bits64>();
     return 0;
 }
 
Modified: sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp
==============================================================================
--- sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp	(original)
+++ sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -10,7 +10,7 @@
 #define BOOST_LIBS_ITL_EXAMPLE_LARGE_BITSET__LARGE_BITSET_HPP_JOFA_091019
 //[large_bitset_includes
 #include <iostream>                   // to organize output
-#include <boost/cstdint.hpp>          // portable long integers
+#include <boost/cstdint.hpp>          // portable boost integers
 #include <boost/operators.hpp>        // to define operators with minimal effort
 #include "meta_log.hpp"               // a meta logarithm
 #include "bits.hpp"                   // a minimal bitset implementation
@@ -21,23 +21,23 @@
 //]
 
 //[large_bitset_natural_typedefs
-typedef unsigned int    nat; 
-typedef unsigned char   nat0; // nati i: number of duplications of a byte
-typedef unsigned short  nat1;
-typedef unsigned long   nat2; 
-typedef boost::uint64_t nat3; 
-
-typedef bits<nat0> bits8;
-typedef bits<nat1> bits16;
-typedef bits<nat2> bits32;
-typedef bits<nat3> bits64;
+typedef boost::uint8_t  nat8; // nati i: number bits
+typedef boost::uint16_t nat16;
+typedef boost::uint32_t nat32; 
+typedef boost::uint64_t nat64; 
+typedef nat32           nat; 
+
+typedef bits<nat8>  bits8;
+typedef bits<nat16> bits16;
+typedef bits<nat32> bits32;
+typedef bits<nat64> bits64;
 //]
 
 //[large_bitset_class_template_header
 template 
 <
-    typename    DomainT = nat3, 
-    typename    BitSetT = mini::bits<nat3>, 
+    typename    DomainT = nat64, 
+    typename    BitSetT = bits64, 
     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT),
     template<class, ITL_COMPARE>class Interval = boost::itl::interval,
     ITL_ALLOC   Alloc   = std::allocator
@@ -77,14 +77,14 @@
     typedef DomainT                                      domain_type;
     typedef DomainT                                      element_type;
     typedef BitSetT                                      bitset_type;
-    typedef typename BitSetT::chunk_type                 chunk_type;
+    typedef typename BitSetT::word_type                  word_type;
     typedef typename interval_bitmap_type::interval_type interval_type;
     typedef typename interval_bitmap_type::value_type    value_type;
     //]
 //[large_bitset_operators
 public:
-    bool          operator ==(const large_bitset& rhs) { return _map == rhs._map; }
-    bool          operator < (const large_bitset& rhs) { return _map <  rhs._map; }
+    bool     operator ==(const large_bitset& rhs)const { return _map == rhs._map; }
+    bool     operator < (const large_bitset& rhs)const { return _map <  rhs._map; }
 
     large_bitset& operator +=(const large_bitset& rhs) {_map += rhs._map; return *this;}
     large_bitset& operator |=(const large_bitset& rhs) {_map |= rhs._map; return *this;}
@@ -139,37 +139,37 @@
     //]
 
 //[large_bitset_impl_constants
-private:                                         // Example value
-    static const chunk_type                      //   8-bit case  
-        bit_count = sizeof(chunk_type)*CHAR_BIT, //   8           Size of the associated bitsets 
-        divisor   = bit_count                  , //   8           Divisor to find intervals for values
-        shift     = log2_<divisor>::value      , //   3           To express the division as bit shift
-        c1        = static_cast<chunk_type>(1) , //               Helps to avoid static_casts for long long
-        mask      = divisor - c1               , //   7=11100000  Helps to express the modulo operation as bit_and
-        all       = ~static_cast<chunk_type>(0), // 255=11111111  Helps to express a complete associated bitset
-        top       = c1 << (bit_count-c1)       ; // 128=00000001  Value of the most significant bit of associated bitsets
-                                                 //            !> Note: Most signigicant bit on the right.
+private:                                      // Example value
+    static const word_type                    //   8-bit case  
+        digits  = sizeof(word_type)*CHAR_BIT, //   8           Size of the associated bitsets 
+        divisor = digits                    , //   8           Divisor to find intervals for values
+        shift   = log2_<divisor>::value     , //   3           To express the division as bit shift
+        w1      = static_cast<word_type>(1) , //               Helps to avoid static_casts for long long
+        mask    = divisor - w1              , //   7=11100000  Helps to express the modulo operation as bit_and
+        all     = ~static_cast<word_type>(0), // 255=11111111  Helps to express a complete associated bitset
+        top     = w1 << (digits-w1)      ;    // 128=00000001  Value of the most significant bit of associated bitsets
+                                              //            !> Note: Most signigicant bit on the right.
     //]
     //[large_bitset_segment_combiner
     typedef void (large_bitset::*segment_combiner)(element_type, element_type, bitset_type);
     //]
 
     //[large_bitset_bitset_filler
-    chunk_type from_lower_to(chunk_type bit){return bit==bit_count-c1 ? all : (1<<(bit+1))-1;}
-    chunk_type to_upper_from(chunk_type bit){return bit==bit_count-c1 ? top : ~((1<<bit)-1); }
+    word_type from_lower_to(word_type bit){return bit==digits-w1 ? all : (1<<(bit+1))-1;}
+    word_type to_upper_from(word_type bit){return bit==digits-w1 ? top : ~((1<<bit)-1); }
     //]
 
     //[large_bitset_segment_apply
     large_bitset& segment_apply(segment_combiner combine, const interval_type& operand)
-    {                                                 // same as
-        element_type base = operand.first() >> shift, // operand.first()/ divisor
-                     ceil = operand.last()  >> shift, // operand.last() / divisor
-                base_rest = operand.first() &  mask , // operand.first()% divisor
-                ceil_rest = operand.last()  &  mask ; // operand.last() % divisor  
+    {                                                   // same as
+        element_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(base == ceil) // [first, last] are within one bitset (chunk)
             (this->*combine)(base, base+1, bitset_type(  to_upper_from(base_rest)
-                                                      & from_lower_to(ceil_rest)));
+                                                       & from_lower_to(ceil_rest)));
         else // [first, last] spread over more than one bitset (chunk)
         {
             element_type mid_low = base_rest == 0   ? base   : base+1, // first element of mid part 
Modified: sandbox/itl/libs/itl/example/large_bitset_/vc9_large_bitset.vcproj
==============================================================================
--- sandbox/itl/libs/itl/example/large_bitset_/vc9_large_bitset.vcproj	(original)
+++ sandbox/itl/libs/itl/example/large_bitset_/vc9_large_bitset.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -196,7 +196,11 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+				RelativePath=".\bits.hpp"
+				>
+			</File>
+			<File
+				RelativePath=".\large_bitset.hpp"
 				>
                         </File>
                 </Filter>
Modified: sandbox/itl/libs/itl/example/month_and_week_grid_/month_and_week_grid.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/month_and_week_grid_/month_and_week_grid.cpp	(original)
+++ sandbox/itl/libs/itl/example/month_and_week_grid_/month_and_week_grid.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -10,16 +10,16 @@
 +-----------------------------------------------------------------------------*/
 /** Example month_and_week_grid.cpp \file month_and_week_grid.cpp
 
-    As split_interval_set preserves all interval borders on insertion
-    and intersection operations. So given a split_interval_set
+    A split_interval_set preserves all interval borders on insertion
+    and intersection operations. So given a split_interval_set ...
     \code
     x =  {[1,     3)}
     x.add(     [2,     4)) then
     x == {[1,2)[2,3)[3,4)}
     \endcode
-    Using this property we can intersect split_interval_maps in
-    order to iterate over intervals accounting for all occurring
-    changes of interval borders.
+    ... using this property we can intersect splitting interval containers
+	in order to iterate over intervals accounting for all changes of 
+	interval borders.
 
     In this example we provide an intersection of two split_interval_sets
     representing a month and week time grid. 
@@ -33,7 +33,7 @@
 // and a few lines of adapter code.
 #include <boost/itl/gregorian.hpp> 
 
-#include <boost/itl/split_interval_map.hpp>
+#include <boost/itl/split_interval_set.hpp>
 
 using namespace std;
 using namespace boost::gregorian;
Modified: sandbox/itl/libs/itl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj
==============================================================================
--- sandbox/itl/libs/itl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj	(original)
+++ sandbox/itl/libs/itl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -196,15 +196,7 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\..\src\itl\interval_base_map.hpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\itl\itl_interval.hpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\itl\split_interval_map.hpp"
+				RelativePath="..\..\..\..\boost\itl\split_interval_set.hpp"
 				>
                         </File>
                 </Filter>
Modified: sandbox/itl/libs/itl/example/party_/party.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/party_/party.cpp	(original)
+++ sandbox/itl/libs/itl/example/party_/party.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -107,3 +107,5 @@
 // [sun:22:15,sun:23:00): Diana Harry Mary Peter Susan
 // [sun:23:00,mon:00:00): Diana Peter Susan
 // [mon:00:00,mon:00:30): Peter
+
+
Modified: sandbox/itl/libs/itl/example/std_transform_/vc9_std_transform.vcproj
==============================================================================
--- sandbox/itl/libs/itl/example/std_transform_/vc9_std_transform.vcproj	(original)
+++ sandbox/itl/libs/itl/example/std_transform_/vc9_std_transform.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -197,6 +197,14 @@
                                 RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
 				>
                         </File>
+			<File
+				RelativePath="..\..\..\..\boost\itl\separate_interval_set.hpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\itl\split_interval_map.hpp"
+				>
+			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/itl/example/user_groups_/user_groups.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/user_groups_/user_groups.cpp	(original)
+++ sandbox/itl/libs/itl/example/user_groups_/user_groups.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -37,7 +37,7 @@
 // and a few lines of adapter code.
 #include <boost/itl/gregorian.hpp> 
 
-#include <boost/itl/split_interval_map.hpp>
+#include <boost/itl/interval_map.hpp>
 
 using namespace std;
 using namespace boost::gregorian;
Modified: sandbox/itl/libs/itl/example/user_groups_/vc9_user_groups.vcproj
==============================================================================
--- sandbox/itl/libs/itl/example/user_groups_/vc9_user_groups.vcproj	(original)
+++ sandbox/itl/libs/itl/example/user_groups_/vc9_user_groups.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -196,15 +196,7 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\..\src\itl\interval.hpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\itl\interval_base_map.hpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\itl\split_interval_map.hpp"
+				RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
 				>
                         </File>
                 </Filter>
Deleted: sandbox/itl/libs/itl/example/vc9_examples.sln
==============================================================================
--- sandbox/itl/libs/itl/example/vc9_examples.sln	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
+++ (empty file)
@@ -1,32 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_std_copy", "std_copy_\vc9_std_copy.vcproj", "{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_std_transform", "std_transform_\vc9_std_transform.vcproj", "{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_large_bitset", "large_bitset_\vc9_large_bitset.vcproj", "{6BE62DDE-21B9-4333-BF11-AA054DD53759}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Debug|Win32.Build.0 = Debug|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Release|Win32.ActiveCfg = Release|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Release|Win32.Build.0 = Release|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Debug|Win32.Build.0 = Debug|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Release|Win32.ActiveCfg = Release|Win32
-		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Release|Win32.Build.0 = Release|Win32
-		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Debug|Win32.Build.0 = Debug|Win32
-		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Release|Win32.ActiveCfg = Release|Win32
-		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
Added: sandbox/itl/libs/itl/example/vc9_itl_examples.sln
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/example/vc9_itl_examples.sln	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,92 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_std_copy", "std_copy_\vc9_std_copy.vcproj", "{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_std_transform", "std_transform_\vc9_std_transform.vcproj", "{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_large_bitset", "large_bitset_\vc9_large_bitset.vcproj", "{6BE62DDE-21B9-4333-BF11-AA054DD53759}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_interval", "interval_\vc9_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_boost_party", "boost_party_\vc9_boost_party.vcproj", "{0D1DB87E-E72A-4FE9-A067-1907CC6613F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_interval_container", "interval_container_\vc9_interval_container.vcproj", "{278324CE-9EC1-4D16-B637-E91A07F9DD81}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_man_power", "man_power_\vc9_man_power.vcproj", "{8B9B91C9-E79C-4F24-BD5C-04ED0F38E8C2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_month_and_week_grid", "month_and_week_grid_\vc9_month_and_week_grid.vcproj", "{360BCFA9-9EB6-4D22-8469-CDC290478F78}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_overlap_counter", "overlap_counter_\vc9_overlap_counter.vcproj", "{8DC9BDE4-E5A4-4294-A12F-D75FD6990B83}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_party", "party_\vc9_party.vcproj", "{6BE62DDE-21B9-4333-BF11-AA054DD43759}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_partys_height_average", "partys_height_average_\vc9_partys_height_average.vcproj", "{0D1DB87E-E72A-4FE9-A067-1907CC6633F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_partys_tallest_guests", "partys_tallest_guests_\vc9_partys_tallest_guests.vcproj", "{0D1DB87E-E72A-4FE9-A067-1907CC6623F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_user_groups", "user_groups_\vc9_user_groups.vcproj", "{900B8478-E01B-4ECD-A4D6-DC88DD5BF4A1}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Debug|Win32.Build.0 = Debug|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Release|Win32.ActiveCfg = Release|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B84}.Release|Win32.Build.0 = Release|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Debug|Win32.Build.0 = Debug|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Release|Win32.ActiveCfg = Release|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B85}.Release|Win32.Build.0 = Release|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Debug|Win32.Build.0 = Debug|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Release|Win32.ActiveCfg = Release|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD53759}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Release|Win32.Build.0 = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6613F8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6613F8}.Debug|Win32.Build.0 = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6613F8}.Release|Win32.ActiveCfg = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6613F8}.Release|Win32.Build.0 = Release|Win32
+		{278324CE-9EC1-4D16-B637-E91A07F9DD81}.Debug|Win32.ActiveCfg = Debug|Win32
+		{278324CE-9EC1-4D16-B637-E91A07F9DD81}.Debug|Win32.Build.0 = Debug|Win32
+		{278324CE-9EC1-4D16-B637-E91A07F9DD81}.Release|Win32.ActiveCfg = Release|Win32
+		{278324CE-9EC1-4D16-B637-E91A07F9DD81}.Release|Win32.Build.0 = Release|Win32
+		{8B9B91C9-E79C-4F24-BD5C-04ED0F38E8C2}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8B9B91C9-E79C-4F24-BD5C-04ED0F38E8C2}.Debug|Win32.Build.0 = Debug|Win32
+		{8B9B91C9-E79C-4F24-BD5C-04ED0F38E8C2}.Release|Win32.ActiveCfg = Release|Win32
+		{8B9B91C9-E79C-4F24-BD5C-04ED0F38E8C2}.Release|Win32.Build.0 = Release|Win32
+		{360BCFA9-9EB6-4D22-8469-CDC290478F78}.Debug|Win32.ActiveCfg = Debug|Win32
+		{360BCFA9-9EB6-4D22-8469-CDC290478F78}.Debug|Win32.Build.0 = Debug|Win32
+		{360BCFA9-9EB6-4D22-8469-CDC290478F78}.Release|Win32.ActiveCfg = Release|Win32
+		{360BCFA9-9EB6-4D22-8469-CDC290478F78}.Release|Win32.Build.0 = Release|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B83}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B83}.Debug|Win32.Build.0 = Debug|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B83}.Release|Win32.ActiveCfg = Release|Win32
+		{8DC9BDE4-E5A4-4294-A12F-D75FD6990B83}.Release|Win32.Build.0 = Release|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD43759}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD43759}.Debug|Win32.Build.0 = Debug|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD43759}.Release|Win32.ActiveCfg = Release|Win32
+		{6BE62DDE-21B9-4333-BF11-AA054DD43759}.Release|Win32.Build.0 = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6633F8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6633F8}.Debug|Win32.Build.0 = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6633F8}.Release|Win32.ActiveCfg = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6633F8}.Release|Win32.Build.0 = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6623F8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6623F8}.Debug|Win32.Build.0 = Debug|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6623F8}.Release|Win32.ActiveCfg = Release|Win32
+		{0D1DB87E-E72A-4FE9-A067-1907CC6623F8}.Release|Win32.Build.0 = Release|Win32
+		{900B8478-E01B-4ECD-A4D6-DC88DD5BF4A1}.Debug|Win32.ActiveCfg = Debug|Win32
+		{900B8478-E01B-4ECD-A4D6-DC88DD5BF4A1}.Debug|Win32.Build.0 = Debug|Win32
+		{900B8478-E01B-4ECD-A4D6-DC88DD5BF4A1}.Release|Win32.ActiveCfg = Release|Win32
+		{900B8478-E01B-4ECD-A4D6-DC88DD5BF4A1}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Modified: sandbox/itl/libs/itl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_map_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_map_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_map_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_map_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_set_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_set_infix_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\fastest_interval_set_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -191,10 +191,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_partial_interval_quantifier_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_separate_interval_set_infix_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj	(original)
+++ sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -191,10 +191,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_total_interval_quantifier_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp	(original)
+++ sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -24,7 +24,10 @@
 #include <boost/itl/split_interval_set.hpp>
 #include <boost/itl/interval_map.hpp>
 #include <boost/itl/split_interval_map.hpp>
-#include <boost/validate/type/nat.hpp>
+#include <boost/itl_xt/interval_bitset.hpp>
+
+#include <limits>
+#include <bitset>
 
 
 using namespace std;
@@ -32,7 +35,6 @@
 using namespace unit_test;
 using namespace boost::itl;
 
-
 BOOST_AUTO_TEST_CASE(casual_test)
 {
     typedef int T;
@@ -40,19 +42,14 @@
     typedef interval_map<int,int>       IntervalMapT;
     typedef split_interval_map<int,int> SplitIntervalMapT;
     typedef interval_map<int,int>       IntervalMapT;
-    typedef vector<pair<interval<int>,int> > IntervalVecT;
 
-    IntervalVecT ivec;
-    ivec.push_back(make_pair(interval<int>::rightopen(1,3),1));
-    ivec.push_back(make_pair(interval<int>::rightopen(2,4),1));
-
-    SplitIntervalMapT sim1, sim2;
-    sim1.insert(make_pair(interval<int>::rightopen(1,3),1));
-    sim1.insert(make_pair(interval<int>::rightopen(2,4),1));
-
-    IntervalMapT jim1;
-    std::copy(ivec.begin(), ivec.end(), itl::adder(jim1, jim1.end()));
-    //std::copy(ivec.begin(), ivec.end(), std::inserter(jim2, jim2.end()));
-    cout << jim1 << endl;
+	interval_bitset<nat> ibs;
+
+	ibs += interval<nat>::rightopen(0,64);
+	int sz = ibs.size();
+	cout << ibs.size() << endl;
+
+	bool contains = ibs.contains(interval<nat>(11,63));
+	cout << "contains=" << contains << endl;
 }
 
Modified: sandbox/itl/libs/itl/test/test_combinable_/vc9_test_combinable.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/test_combinable_/vc9_test_combinable.vcproj	(original)
+++ sandbox/itl/libs/itl/test/test_combinable_/vc9_test_combinable.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_interval_map_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj	(original)
+++ sandbox/itl/libs/itl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_interval_set_infix_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj	(original)
+++ sandbox/itl/libs/itl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -191,10 +191,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_partial_interval_quantifier_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj	(original)
+++ sandbox/itl/libs/itl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_separate_interval_set_infix_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj	(original)
+++ sandbox/itl/libs/itl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -190,10 +190,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_split_interval_set_infix_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Modified: sandbox/itl/libs/itl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/itl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj	(original)
+++ sandbox/itl/libs/itl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -191,10 +191,6 @@
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
                         <File
-				RelativePath="..\test_total_interval_quantifier_shared.hpp"
-				>
-			</File>
-			<File
                                 RelativePath="..\test_type_lists.hpp"
 				>
                         </File>
Added: sandbox/itl/libs/itl/test/vc9_fast_tests.sln
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/vc9_fast_tests.sln	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,110 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map", "fastest_interval_map_\vc9_fastest_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_infix", "fastest_interval_map_infix_\vc9_fastest_interval_map_infix.vcproj", "{0FBD7F60-6470-41BB-8F8C-F47E9765C011}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_infix_mixed", "fastest_interval_map_infix_mixed_\vc9_fastest_interval_map_infix_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_mixed2", "fastest_interval_map_mixed2_\vc9_fastest_interval_map_mixed2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set", "fastest_interval_set_\vc9_fastest_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_total_interval_quantifier", "fastest_total_interval_quantifier_\vc9_fastest_total_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_itl_interval", "fastest_itl_interval_\vc9_fastest_itl_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set_infix", "fastest_interval_set_infix_\vc9_fastest_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D1623E906E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set_mixed", "fastest_interval_set_mixed_\vc9_fastest_interval_set_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_itl_map", "fastest_itl_map_\vc9_fastest_itl_map.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_partial_interval_quantifier", "fastest_partial_interval_quantifier_\vc9_fastest_partial_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_separate_interval_set", "fastest_separate_interval_set_\vc9_fastest_separate_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_casual", "test_casual_\vc9_test_casual.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_separate_interval_set_infix", "fastest_separate_interval_set_infix_\vc9_fastest_separate_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D2623E911E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_set_interval_set", "fastest_set_interval_set_\vc9_fastest_set_interval_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_set_itl_set", "fastest_set_itl_set_\vc9_fastest_set_itl_set.vcproj", "{33577D13-D562-4E3F-89F2-A8885151D13F}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.Build.0 = Release|Win32
+		{0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.Build.0 = Debug|Win32
+		{0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.ActiveCfg = Release|Win32
+		{0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.Build.0 = Release|Win32
+		{A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.Build.0 = Debug|Win32
+		{A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.ActiveCfg = Release|Win32
+		{A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.Build.0 = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.Build.0 = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.ActiveCfg = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
+		{A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.Build.0 = Debug|Win32
+		{A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.ActiveCfg = Release|Win32
+		{A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.Build.0 = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.Build.0 = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.ActiveCfg = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.Build.0 = Release|Win32
+		{33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.Build.0 = Debug|Win32
+		{33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.ActiveCfg = Release|Win32
+		{33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Added: sandbox/itl/libs/itl/test/vc9_slow_tests.sln
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/vc9_slow_tests.sln	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,140 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_combinable", "test_combinable_\vc9_test_combinable.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map", "test_interval_map_\vc9_test_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_infix", "test_interval_map_infix_\vc9_test_interval_map_infix.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_infix_mixed", "test_interval_map_infix_mixed_\vc9_test_interval_map_infix_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_mixed2", "test_interval_map_mixed2_\vc9_test_interval_map_mixed2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_mixed", "test_interval_map_mixed_\vc9_test_interval_map_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set", "test_interval_set_\vc9_test_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set_infix", "test_interval_set_infix_\vc9_test_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D1623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set_mixed", "test_interval_set_mixed_\vc9_test_interval_set_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_itl_interval", "test_itl_interval_\vc9_test_itl_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_itl_map", "test_itl_map_\vc9_test_itl_map.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_partial_interval_quantifier", "test_partial_interval_quantifier_\vc9_test_partial_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_separate_interval_set", "test_separate_interval_set_\vc9_test_separate_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_separate_interval_set_infix", "test_separate_interval_set_infix_\vc9_test_separate_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D2623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_set_interval_set", "test_set_interval_set_\vc9_test_set_interval_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_set_itl_set", "test_set_itl_set_\vc9_test_set_itl_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_map", "test_split_interval_map_\vc9_test_split_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_map_infix", "test_split_interval_map_infix_\vc9_test_split_interval_map_infix.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_set", "test_split_interval_set_\vc9_test_split_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_set_infix", "test_split_interval_set_infix_\vc9_test_split_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D3623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_total_interval_quantifier", "test_total_interval_quantifier_\vc9_test_total_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Release|Win32.Build.0 = Release|Win32
+		{A731623C-94BC-4666-A419-35D1623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A731623C-94BC-4666-A419-35D1623E950E}.Debug|Win32.Build.0 = Debug|Win32
+		{A731623C-94BC-4666-A419-35D1623E950E}.Release|Win32.ActiveCfg = Release|Win32
+		{A731623C-94BC-4666-A419-35D1623E950E}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Release|Win32.Build.0 = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Debug|Win32.Build.0 = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Release|Win32.ActiveCfg = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Release|Win32.Build.0 = Release|Win32
+		{A731623C-94BC-4666-A419-35D2623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A731623C-94BC-4666-A419-35D2623E950E}.Debug|Win32.Build.0 = Debug|Win32
+		{A731623C-94BC-4666-A419-35D2623E950E}.Release|Win32.ActiveCfg = Release|Win32
+		{A731623C-94BC-4666-A419-35D2623E950E}.Release|Win32.Build.0 = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Debug|Win32.Build.0 = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Release|Win32.ActiveCfg = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Release|Win32.Build.0 = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Debug|Win32.Build.0 = Debug|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Release|Win32.ActiveCfg = Release|Win32
+		{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Release|Win32.Build.0 = Release|Win32
+		{A731623C-94BC-4666-A419-35D3623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A731623C-94BC-4666-A419-35D3623E950E}.Debug|Win32.Build.0 = Debug|Win32
+		{A731623C-94BC-4666-A419-35D3623E950E}.Release|Win32.ActiveCfg = Release|Win32
+		{A731623C-94BC-4666-A419-35D3623E950E}.Release|Win32.Build.0 = Release|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+		{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Modified: sandbox/itl/libs/itl_xt/test/meta_functors_/meta_functors.cpp
==============================================================================
--- sandbox/itl/libs/itl_xt/test/meta_functors_/meta_functors.cpp	(original)
+++ sandbox/itl/libs/itl_xt/test/meta_functors_/meta_functors.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -1,31 +1,10 @@
 /*-----------------------------------------------------------------------------+    
 Copyright (c) 2008-2009: Joachim Faulhaber
 +------------------------------------------------------------------------------+
-Boost Software License - Version 1.0 - August 17th, 2003
-
-Permission is hereby granted, free of charge, to any person or organization
-obtaining a copy of the software and accompanying documentation covered by
-this license (the "Software") to use, reproduce, display, distribute,
-execute, and transmit the Software, and to prepare derivative works of the
-Software, and to permit third-parties to whom the Software is furnished to
-do so, all subject to the following:
-
-The copyright notices in the Software and this entire statement, including
-the above license grant, this restriction and the following disclaimer,
-must be included in all copies of the Software, in whole or in part, and
-all derivative works of the Software, unless such copies or derivative
-works are solely in the form of machine-executable object code generated by
-a source language processor.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
+   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>
 #include <set>
 #include <vector>
@@ -183,7 +162,7 @@
     int value()const { return _value; }
 
     std::string as_string()const
-    { return to_string<int>::apply(_value); }
+	{ return itl::to_string<int>::apply(_value); }
 
 private:
     int _value;
@@ -235,11 +214,11 @@
 
 void quantifier_subtract_test()
 {
-    typedef interval_map<int,nat> QuantifierT;
+    typedef interval_map<int,cnat> QuantifierT;
     QuantifierT sec_map;
     sec_map += QuantifierT::value_type(interval<int>::rightopen(1,5), 1);
-    sec_map -= make_pair(interval<int>::rightopen(3,7), static_cast<nat>(2));
-    sec_map += make_pair(interval<int>::rightopen(3,7), static_cast<nat>(3));
+    sec_map -= make_pair(interval<int>::rightopen(3,7), static_cast<cnat>(2));
+    sec_map += make_pair(interval<int>::rightopen(3,7), static_cast<cnat>(3));
     //sec_map *= QuantifierT(make_pair(interval<int>::rightopen(3,7), 1));
     
     QuantifierT sec_map2;
Modified: sandbox/itl/libs/validate/example/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/validate/example/Jamfile.v2	(original)
+++ sandbox/itl/libs/validate/example/Jamfile.v2	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -47,6 +47,17 @@
         <include>$(BOOST_ROOT)
     ;
 
+# msvc9 compilation time: 1:05  
+exe labat_itv_bitset
+    :
+        labat_itv_bitset_/labat_itv_bitset.cpp
+		gentorprofile.obj
+		/boost/date_time//boost_date_time
+    :
+        <include>../../..
+        <include>$(BOOST_ROOT)
+    ;
+
 # msvc9 compilation time: 1:28  
 exe labat_itl_set
     :
Added: sandbox/itl/libs/validate/example/labat_itv_bitset_/labat_itv_bitset.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_itv_bitset_/labat_itv_bitset.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,38 @@
+/*-----------------------------------------------------------------------------+    
+A Law Based Test Automaton 'LaBatea'
+Author: Joachim Faulhaber
+Copyright (c) 2007-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)
++-----------------------------------------------------------------------------*/
+#include <iostream>
+#include <stdio.h>
+
+#include <boost/validate/driver/interval_bitset_driver.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::itl;
+
+void test_itl_set_driver()
+{
+    interval_bitset_driver validater;
+    cout << 
+    ">> ------------------------------------------------------ <<\n"
+    ">> -------- Law based test automaton 'LaBatea' ---------- <<\n"
+    ">> Output will be generated in a few seconds\n"
+    ">> terminate by typing <CTRL>C\n"
+    ">> ------------------------------------------------------ <<\n";
+    GentorProfileSgl::it()->set_std_profile(100,1);
+    GentorProfileSgl::it()->report_profile();
+    validater.validate();
+};
+
+
+int main()
+{
+    test_itl_set_driver();
+    return 0;
+}
Added: sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_labat_itv_bitset"
+	ProjectGUID="{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}"
+	RootNamespace="vc9_labat_itv_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"
+				AdditionalOptions="/bigobj"
+				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"
+				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"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				ExceptionHandling="1"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				LinkTimeCodeGeneration="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>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Quelldateien"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\src\gentor\gentorprofile.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\labat_itv_bitset_\labat_itv_bitset.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Headerdateien"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\..\..\boost\validate\law.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\laws\order.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Ressourcendateien"
+			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>
+		<File
+			RelativePath=".\ReadMe.txt"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Modified: sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp	(original)
+++ sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -76,11 +76,11 @@
     //typedef Balance<itl::tree<int> >  TestLawT;
     //LawValidater<TestLawT, RandomGentor> test_law;
 
-    typedef InplaceDeMorgan
-    <itl::split_interval_map<int, itl::bits16, partial_enricher, 
-                             std::less, inplace_bit_add, inplace_bit_and>, 
-    inplace_bit_add, inplace_bit_and>  TestLawT;
-    LawValidater<TestLawT, RandomGentor> test_law;
+    //typedef InplaceDeMorgan
+    //<itl::split_interval_map<int, itl::bits16, partial_enricher, 
+    //                         std::less, inplace_bit_add, inplace_bit_and>, 
+    //inplace_bit_add, inplace_bit_and>  TestLawT;
+    //LawValidater<TestLawT, RandomGentor> test_law;
 
     //typedef IntersectsDefined
     //    <itl::interval_map<int, int, total_absorber> >  TestLawT;
@@ -98,14 +98,14 @@
     //    <interval_set<int>, itl::interval<int> >  TestLawT;
     //LawValidater<TestLawT, RandomGentor> test_law;
 
-    //typedef FunctionEquality
-    //<
-    //    itl::list<std::pair<int,int> >, 
-    //    itl::map<int,int,partial_absorber>,
-    //    base_insertion, 
-    //    hint_insertion
-    //> TestLawT;
-    //LawValidater<TestLawT, RandomGentor> test_law;
+    typedef FunctionEquality
+    <
+        itl::list<std::pair<int,int> >, 
+        itl::map<int,int,partial_absorber>,
+        base_insertion, 
+        hint_insertion
+    > TestLawT;
+    LawValidater<TestLawT, RandomGentor> test_law;
 
     //-----------------------------------------------------------------------------
     int test_count = 10000;
Added: sandbox/itl/libs/validate/example/vc9_validate_examples.sln
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/vc9_validate_examples.sln	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,38 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_itl_set", "labat_itl_set_\vc9_labat_itl_set.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4723}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_itv_bitset", "labat_itv_bitset_\vc9_labat_itv_bitset.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_unsigned_quantifier", "labat_unsigned_quantifier_\vc9_labat_unsigned_quantifier.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4720}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_bit_collector", "labat_bit_collector_\vc9_labat_bit_collector.vcproj", "{9EF72937-0585-487D-B887-5359BFA569E9}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4723}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4723}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4723}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4723}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4720}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4720}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4720}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4720}.Release|Win32.Build.0 = Release|Win32
+		{9EF72937-0585-487D-B887-5359BFA569E9}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9EF72937-0585-487D-B887-5359BFA569E9}.Debug|Win32.Build.0 = Debug|Win32
+		{9EF72937-0585-487D-B887-5359BFA569E9}.Release|Win32.ActiveCfg = Release|Win32
+		{9EF72937-0585-487D-B887-5359BFA569E9}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Modified: sandbox/itl/libs/validate/test/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/validate/test/Jamfile.v2	(original)
+++ sandbox/itl/libs/validate/test/Jamfile.v2	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -26,6 +26,9 @@
       # msvc9 compilation time: 1:03  
       [ run test_map_copy_conformity_/test_map_copy_conformity.cpp ../src/gentor/gentorprofile.cpp ]
       
+      # msvc9 compilation time: 1:05  
+      [ run test_interval_bitset_/test_interval_bitset.cpp ../src/gentor/gentorprofile.cpp ]
+      
       # msvc9 compilation time: 1:28  
       [ run test_itl_set_/test_itl_set.cpp ../src/gentor/gentorprofile.cpp ]
       
Modified: sandbox/itl/libs/validate/test/test_bit_collector_/vc9_test_bit_collector.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_bit_collector_/vc9_test_bit_collector.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_bit_collector_/vc9_test_bit_collector.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_collector_/vc9_test_collector.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_collector_/vc9_test_collector.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_collector_/vc9_test_collector.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Added: sandbox/itl/libs/validate/test/test_interval_bitset_/test_interval_bitset.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/test/test_interval_bitset_/test_interval_bitset.cpp	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,31 @@
+/*-----------------------------------------------------------------------------+    
+A Law Based Test Automaton 'LaBatea'
+Author: Joachim Faulhaber
+Copyright (c) 2007-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 validate::itl_set_copy_conformity unit test
+#include <string>
+#include <iostream>
+#include <boost/test/unit_test.hpp>
+#include <boost/validate/driver/interval_bitset_driver.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+BOOST_AUTO_TEST_CASE(test_validate_itl_interval_bitset)
+{
+    interval_bitset_driver validater;
+    GentorProfileSgl::it()->set_std_profile(20,1);
+    //GentorProfileSgl::it()->report_profile();
+    validater.terminate_at_law_count(42, 2);
+    //validater.set_information_level(inform::never);
+
+    BOOST_CHECK_EQUAL(validater.validate(), true);
+}
+
Added: sandbox/itl/libs/validate/test/test_interval_bitset_/vc9_test_interval_bitmap.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/test/test_interval_bitset_/vc9_test_interval_bitmap.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_test_interval_bitset"
+	ProjectGUID="{BF42574F-66E2-42DD-90D9-3A8FCE6F4760}"
+	RootNamespace="vc9_test_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"
+				AdditionalOptions="/bigobj"
+				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"
+				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"
+				WholeProgramOptimization="true"
+				AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				ExceptionHandling="1"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="false"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				LinkTimeCodeGeneration="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>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Quelldateien"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\src\gentor\gentorprofile.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\test_interval_bitset_\test_interval_bitset.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Headerdateien"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+		</Filter>
+		<Filter
+			Name="Ressourcendateien"
+			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>
+		<File
+			RelativePath=".\ReadMe.txt"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Modified: sandbox/itl/libs/validate/test/test_itl_set_/vc9_test_itl_set.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_itl_set_/vc9_test_itl_set.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_itl_set_/vc9_test_itl_set.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_map_copy_conformity_/vc9_test_map_copy_conformity.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_map_copy_conformity_/vc9_test_map_copy_conformity.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_map_copy_conformity_/vc9_test_map_copy_conformity.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_map_order_/vc9_test_map_order.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_map_order_/vc9_test_map_order.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_map_order_/vc9_test_map_order.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_set_copy_conformity_/vc9_test_set_copy_conformity.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_set_copy_conformity_/vc9_test_set_copy_conformity.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_set_copy_conformity_/vc9_test_set_copy_conformity.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_set_order_/vc9_test_set_order.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_set_order_/vc9_test_set_order.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_set_order_/vc9_test_set_order.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_signed_quantifier_/vc9_test_signed_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_signed_quantifier_/vc9_test_signed_quantifier.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_signed_quantifier_/vc9_test_signed_quantifier.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,30 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\driver\signed_quantifier_driver.hpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\validater\signed_quantifier_validater.hpp"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_unsigned_quantifier_/vc9_test_unsigned_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_unsigned_quantifier_/vc9_test_unsigned_quantifier.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_unsigned_quantifier_/vc9_test_unsigned_quantifier.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\unsigned_quantifier_validater.hpp"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Modified: sandbox/itl/libs/validate/test/test_val_relations_/vc9_test_val_relations.vcproj
==============================================================================
--- sandbox/itl/libs/validate/test/test_val_relations_/vc9_test_val_relations.vcproj	(original)
+++ sandbox/itl/libs/validate/test/test_val_relations_/vc9_test_val_relations.vcproj	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -195,42 +195,6 @@
                         Filter="h;hpp;hxx;hm;inl;inc;xsd"
                         UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
-			<File
-				RelativePath="..\..\..\..\boost\validate\law.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\lawviolations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\monoid.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\order.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\pushouts.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\realmvalidater.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\laws\set_laws.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
-				>
-			</File>
                 </Filter>
                 <Filter
                         Name="Ressourcendateien"
Added: sandbox/itl/libs/validate/test/vc9_validate_tests.sln
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/test/vc9_validate_tests.sln	2009-10-31 17:50:25 EDT (Sat, 31 Oct 2009)
@@ -0,0 +1,86 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_val_relations", "test_val_relations_\vc9_test_val_relations.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F474F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_set_copy_conformity", "test_set_copy_conformity_\vc9_test_set_copy_conformity.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F475F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_map_copy_conformity", "test_map_copy_conformity_\vc9_test_map_copy_conformity.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F476F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_itl_set", "test_itl_set_\vc9_test_itl_set.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4724}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_unsigned_quantifier", "test_unsigned_quantifier_\vc9_test_unsigned_quantifier.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4725}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_bit_collector", "test_bit_collector_\vc9_test_bit_collector.vcproj", "{9EF72937-0585-487D-B887-5359BFA569EB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_signed_quantifier", "test_signed_quantifier_\vc9_test_signed_quantifier.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4726}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_itl_morphic", "test_itl_morphic_\vc9_test_itl_morphic.vcproj", "{612A0CA2-9206-4D24-8C34-D1E48D5FEC6F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_collector", "test_collector_\vc9_test_collector.vcproj", "{9EF72937-0585-487D-B887-5359BFA569EA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_set_order", "test_set_order_\vc9_test_set_order.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F472A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_map_order", "test_map_order_\vc9_test_map_order.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4729}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_bitset", "test_interval_bitset_\vc9_test_interval_bitmap.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4760}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F474F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F474F}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F474F}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F474F}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F475F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F475F}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F475F}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F475F}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F476F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F476F}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F476F}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F476F}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4724}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4724}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4724}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4724}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4725}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4725}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4725}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4725}.Release|Win32.Build.0 = Release|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EB}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EB}.Debug|Win32.Build.0 = Debug|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EB}.Release|Win32.ActiveCfg = Release|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EB}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4726}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4726}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4726}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4726}.Release|Win32.Build.0 = Release|Win32
+		{612A0CA2-9206-4D24-8C34-D1E48D5FEC6F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{612A0CA2-9206-4D24-8C34-D1E48D5FEC6F}.Debug|Win32.Build.0 = Debug|Win32
+		{612A0CA2-9206-4D24-8C34-D1E48D5FEC6F}.Release|Win32.ActiveCfg = Release|Win32
+		{612A0CA2-9206-4D24-8C34-D1E48D5FEC6F}.Release|Win32.Build.0 = Release|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EA}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EA}.Debug|Win32.Build.0 = Debug|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EA}.Release|Win32.ActiveCfg = Release|Win32
+		{9EF72937-0585-487D-B887-5359BFA569EA}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472A}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472A}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F472A}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4729}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4729}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4729}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4729}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4760}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4760}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4760}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4760}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal