Boost logo

Boost-Commit :

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


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk