Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r66161 - in sandbox/itl: boost/itl boost/itl/concept boost/itl/concept/interval boost/itl/detail boost/itl/type_traits boost/itl_xt boost/validate/laws boost/validate/validater libs/itl/example libs/itl/example/custom_interval_ libs/itl/example/dynamic_interval_ libs/itl/example/interval_ libs/itl/example/large_bitset_ libs/itl/example/static_interval_ libs/itl/test/test_casual_ libs/itl/test/test_set_itl_set_ libs/itl_xt/test libs/validate/example/labat_map_order_ libs/validate/example/labat_set_order_ libs/validate/example/labat_single_
From: afojgo_at_[hidden]
Date: 2010-10-24 06:49:15


Author: jofaber
Date: 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
New Revision: 66161
URL: http://svn.boost.org/trac/boost/changeset/66161

Log:
Added examples for dynamically and statically bounded interval class templates. Stable{msvc-9.0,10.0, gcc-3.4.4}

Added:
   sandbox/itl/boost/itl/associative_element_container.hpp (contents, props changed)
   sandbox/itl/boost/itl/associative_interval_container.hpp (contents, props changed)
   sandbox/itl/boost/itl/concept/joinable.hpp (contents, props changed)
   sandbox/itl/libs/itl/example/dynamic_interval_/
   sandbox/itl/libs/itl/example/dynamic_interval_/dynamic_interval.cpp (contents, props changed)
   sandbox/itl/libs/itl/example/dynamic_interval_/vc9_dynamic_interval.vcproj (contents, props changed)
   sandbox/itl/libs/itl/example/static_interval_/
   sandbox/itl/libs/itl/example/static_interval_/static_interval.cpp (contents, props changed)
   sandbox/itl/libs/itl/example/static_interval_/vc9_static_interval.vcproj (contents, props changed)
Text files modified:
   sandbox/itl/boost/itl/closed_interval.hpp | 2
   sandbox/itl/boost/itl/concept/interval.hpp | 10 ++
   sandbox/itl/boost/itl/concept/interval/base.hpp | 5
   sandbox/itl/boost/itl/concept/interval_map.hpp | 2
   sandbox/itl/boost/itl/continuous_interval.hpp | 2
   sandbox/itl/boost/itl/detail/design_config.hpp | 62 +-----------
   sandbox/itl/boost/itl/detail/map_algo.hpp | 1
   sandbox/itl/boost/itl/discrete_interval.hpp | 3
   sandbox/itl/boost/itl/interval.hpp | 6
   sandbox/itl/boost/itl/interval_base_map.hpp | 8 -
   sandbox/itl/boost/itl/interval_base_set.hpp | 11 -
   sandbox/itl/boost/itl/left_open_interval.hpp | 2
   sandbox/itl/boost/itl/map.hpp | 7 -
   sandbox/itl/boost/itl/open_interval.hpp | 2
   sandbox/itl/boost/itl/right_open_interval.hpp | 2
   sandbox/itl/boost/itl/set.hpp | 198 ---------------------------------------
   sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp | 7 -
   sandbox/itl/boost/itl/type_traits/is_container.hpp | 1
   sandbox/itl/boost/itl/type_traits/is_interval.hpp | 1
   sandbox/itl/boost/itl_xt/episode_set.hpp | 2
   sandbox/itl/boost/itl_xt/interval_bitset.hpp | 1
   sandbox/itl/boost/itl_xt/itvgentor.hpp | 2
   sandbox/itl/boost/itl_xt/setgentor.hpp | 2
   sandbox/itl/boost/itl_xt/string_set.hpp | 2
   sandbox/itl/boost/itl_xt/tuple_computer.hpp | 1
   sandbox/itl/boost/validate/laws/law_violations.hpp | 4
   sandbox/itl/boost/validate/validater/law_validater.hpp | 2
   sandbox/itl/libs/itl/example/custom_interval_/custom_interval.cpp | 3
   sandbox/itl/libs/itl/example/interval_/interval.cpp | 6
   sandbox/itl/libs/itl/example/large_bitset_/large_bitset.cpp | 2
   sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp | 6
   sandbox/itl/libs/itl/example/vc9_itl_examples.sln | 12 ++
   sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp | 2
   sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set.cpp | 4
   sandbox/itl/libs/itl_xt/test/itvmaptester.h | 59 ++++++-----
   sandbox/itl/libs/itl_xt/test/itvsettester.h | 50 +++++-----
   sandbox/itl/libs/validate/example/labat_map_order_/labat_map_order.cpp | 1
   sandbox/itl/libs/validate/example/labat_set_order_/labat_set_order.cpp | 1
   sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp | 2
   39 files changed, 131 insertions(+), 365 deletions(-)

Added: sandbox/itl/boost/itl/associative_element_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/associative_element_container.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,19 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_ASSOCIATIVE_ELEMENT_CONTAINER_HPP_JOFA_101023
+#define BOOST_ICL_ASSOCIATIVE_ELEMENT_CONTAINER_HPP_JOFA_101023
+
+#include <boost/itl/detail/map_algo.hpp>
+#include <boost/itl/concept/container.hpp>
+#include <boost/itl/concept/element_set.hpp>
+#include <boost/itl/concept/element_map.hpp>
+#include <boost/itl/concept/element_associator.hpp>
+
+#endif
+
+

Added: sandbox/itl/boost/itl/associative_interval_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/associative_interval_container.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,19 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_ASSOCIATIVE_INTERVAL_CONTAINER_HPP_JOFA_101023
+#define BOOST_ICL_ASSOCIATIVE_INTERVAL_CONTAINER_HPP_JOFA_101023
+
+#include <boost/itl/concept/joinable.hpp>
+#include <boost/itl/concept/container.hpp>
+#include <boost/itl/concept/interval_set.hpp>
+#include <boost/itl/concept/interval_map.hpp>
+#include <boost/itl/concept/interval_associator.hpp>
+
+#endif
+
+

Modified: sandbox/itl/boost/itl/closed_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/closed_interval.hpp (original)
+++ sandbox/itl/boost/itl/closed_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -8,9 +8,9 @@
 #ifndef BOOST_ICL_CLOSED_INTERVAL_HPP_JOFA_100324
 #define BOOST_ICL_CLOSED_INTERVAL_HPP_JOFA_100324
 
+#include <boost/itl/concept/interval.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
-#include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl/concept/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -942,6 +942,16 @@
                                  : last_next(object) - first(object);
 }
 
+//- iterative_size -------------------------------------------------------------
+template<class Type>
+inline typename enable_if<is_interval<Type>,
+ typename size_type_of<interval_traits<Type> >::type>::type
+iterative_size(const Type& object)
+{
+ return 2;
+}
+
+
 //==============================================================================
 //= Addition
 //==============================================================================

Modified: sandbox/itl/boost/itl/concept/interval/base.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval/base.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval/base.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -8,6 +8,8 @@
 #ifndef BOOST_ICL_CONCEPT_INTERVAL_BASE_HPP_JOFA_100920
 #define BOOST_ICL_CONCEPT_INTERVAL_BASE_HPP_JOFA_100920
 
+/*CL remove file
+
 #include <boost/itl/type_traits/is_combinable.hpp>
 
 namespace boost{ namespace icl
@@ -41,9 +43,10 @@
 }
 
 
-
 }} // namespace boost icl
 
+*/
+
 #endif
 
 

Modified: sandbox/itl/boost/itl/concept/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_map.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -13,7 +13,7 @@
 #include <boost/itl/type_traits/absorbs_identities.hpp>
 #include <boost/itl/type_traits/is_combinable.hpp>
 
-#include <boost/itl/concept/map_value.hpp>
+#include <boost/itl/detail/set_algo.hpp>
 #include <boost/itl/detail/interval_map_algo.hpp>
 #include <boost/itl/concept/interval.hpp>
 

Added: sandbox/itl/boost/itl/concept/joinable.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/concept/joinable.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,49 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_CONCEPT_JOINABLE_HPP_JOFA_100920
+#define BOOST_ICL_CONCEPT_JOINABLE_HPP_JOFA_100920
+
+#include <boost/itl/type_traits/is_interval_container.hpp>
+
+namespace boost{ namespace icl
+{
+
+template<class Type>
+inline typename enable_if<is_interval_map<Type>, typename Type::segment_type>::type
+make_segment(const typename Type::element_type& element)
+{
+ typedef typename Type::interval_type interval_type;
+ typedef typename Type::segment_type segment_type;
+ return segment_type(icl::singleton<interval_type>(element.key), element.data);
+}
+
+namespace segmental
+{
+ template<class Type>
+ typename enable_if<is_interval_set<Type>, bool>::type
+ is_joinable(typename Type::iterator it_, typename Type::iterator next_, Type* = 0)
+ {
+ return touches(*it_, *next_);
+ }
+
+ template<class Type>
+ typename enable_if<is_interval_map<Type>, bool>::type
+ is_joinable(typename Type::iterator it_, typename Type::iterator next_, Type* = 0)
+ {
+ return touches(it_->first, next_->first)
+ && it_->second == next_->second ;
+ }
+}
+
+
+
+}} // namespace boost icl
+
+#endif
+
+

Modified: sandbox/itl/boost/itl/continuous_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/continuous_interval.hpp (original)
+++ sandbox/itl/boost/itl/continuous_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -12,13 +12,13 @@
 #include <boost/static_assert.hpp>
 #include <boost/concept/assert.hpp>
 #include <boost/itl/detail/concept_check.hpp>
+#include <boost/itl/concept/interval.hpp>
 #include <boost/itl/concept/container.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
 #include <boost/itl/type_traits/is_continuous.hpp>
 #include <boost/itl/type_traits/is_continuous_interval.hpp>
 #include <boost/itl/interval_bounds.hpp>
-#include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl/detail/design_config.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/design_config.hpp (original)
+++ sandbox/itl/boost/itl/detail/design_config.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -15,49 +15,14 @@
 #ifndef BOOST_ICL_DESIGN_CONFIG_HPP_JOFA_090214
 #define BOOST_ICL_DESIGN_CONFIG_HPP_JOFA_090214
 
-// For an interim period, it will be possible to swith between the old and new
-// implementation for intervals.
-#define ICL_NEW_INTERVAL_IMPL //JODO remove for the final release.
-
 // If this macro is defined, right_open_interval with static interval borders
 // will be used as default for all interval containers.
 // BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS should be defined in the application
 // before other includes from the ITL
-//#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS //JODO comment this out for the final release
+//#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
 // If BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS is NOT defined, ITL uses intervals
 // with dynamic borders as default.
 
-#ifdef ICL_USE_DYNAMIC_INTERVAL_BORDERS_DEFAULTS //JODO remove this for the final release
-# undef ICL_USE_STATIC_INTERVAL_BORDERS_DEFAULTS
-#endif
-
-//#define ICL_CONCEPT_ORIENTED
-#define ICL_PURE_CONCEPTUAL
-
-#ifndef ICL_CONCEPT_ORIENTED
-#define ICL_OBJECT_ORIENTED
-#endif
-
-#ifdef ICL_CONCEPT_ORIENTED //CL
-# define ICL_FUN_CALL(func, arg) icl::func(arg)
-# define ICL_FUN_REN(func_obj, func_conc, arg) icl::func_conc(arg)
-#else //ICL_OBJECT_ORIENTED
-# define ICL_FUN_CALL(func,arg) arg.func()
-# define ICL_FUN_REN(func_obj, func_conc, arg) arg.func_obj()
-#endif
-
-#ifdef ICL_OBJECT_ORIENTED //CL
-# define ICL_BEGIN_COMMON_MEMBER_FUNCTIONS public
-# define ICL_END_COMMON_MEMBER_FUNCTIONS public
-#else //ICL_CONCEPT_ORIENTED
-# ifdef ICL_PURE_CONCEPTUAL
-# define ICL_BEGIN_COMMON_MEMBER_FUNCTIONS private
-# define ICL_END_COMMON_MEMBER_FUNCTIONS public
-# else
-# define ICL_BEGIN_COMMON_MEMBER_FUNCTIONS public
-# define ICL_END_COMMON_MEMBER_FUNCTIONS public
-# endif
-#endif
 
 //------------------------------------------------------------------------------
 // Auxiliary macros for denoting template signatures.
@@ -68,21 +33,10 @@
 // (4) Being able to check template template parameter variants against
 // template type parameter variants.
 
-#ifdef ICL_NEW_INTERVAL_IMPL
-# define ICL_USE_COMPARE_TEMPLATE_TEMPLATE
-# define ICL_USE_COMBINE_TEMPLATE_TEMPLATE
-# define ICL_USE_SECTION_TEMPLATE_TEMPLATE
-#else
-# define ICL_USE_COMPARE_TEMPLATE_TEMPLATE
-# define ICL_USE_COMBINE_TEMPLATE_TEMPLATE
-# define ICL_USE_SECTION_TEMPLATE_TEMPLATE
-# define ICL_USE_INTERVAL_TEMPLATE_TEMPLATE
-#endif
-
-//#define ICL_USE_COMPARE_TEMPLATE_TYPE
-//#define ICL_USE_COMBINE_TEMPLATE_TYPE
-//#define ICL_USE_SECTION_TEMPLATE_TYPE
-//#define ICL_USE_INTERVAL_TEMPLATE_TYPE
+#define ICL_USE_COMPARE_TEMPLATE_TEMPLATE
+#define ICL_USE_COMBINE_TEMPLATE_TEMPLATE
+#define ICL_USE_SECTION_TEMPLATE_TEMPLATE
+// ICL_USE_INTERVAL_TEMPLATE_TYPE
 
 //------------------------------------------------------------------------------
 // template parameter Compare can not be a template type parameter as long as
@@ -141,11 +95,7 @@
 
 
 //------------------------------------------------------------------------------
-#ifdef ICL_NEW_INTERVAL_IMPL
-# define ICL_INTERVAL_DEFAULT boost::icl::interval_type_default
-#else
-# define ICL_INTERVAL_DEFAULT boost::icl::interval
-#endif
+#define ICL_INTERVAL_DEFAULT boost::icl::interval_type_default
 
 //------------------------------------------------------------------------------
 #define ICL_ALLOC template<class>class

Modified: sandbox/itl/boost/itl/detail/map_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/map_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/map_algo.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -34,7 +34,6 @@
 
     co_iterator right_ = right_common_lower_;
     while(right_ != right_common_upper_)
- //CL if(icl::intersects(left, key_value<CoObjectT>(right_++)))
         if(!(left.find(key_value<CoObjectT>(right_++))==left.end()))
             return true;
 

Modified: sandbox/itl/boost/itl/discrete_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/discrete_interval.hpp (original)
+++ sandbox/itl/boost/itl/discrete_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -11,13 +11,14 @@
 #include <functional>
 #include <boost/static_assert.hpp>
 #include <boost/concept/assert.hpp>
+#include <boost/itl/detail/concept_check.hpp>
 #include <boost/itl/type_traits/succ_pred.hpp>
+#include <boost/itl/concept/interval.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
 #include <boost/itl/type_traits/is_continuous.hpp>
 #include <boost/itl/type_traits/is_discrete_interval.hpp>
 #include <boost/itl/interval_bounds.hpp>
-#include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -15,6 +15,9 @@
 namespace boost{ namespace icl
 {
 
+ template <class IntervalT, bool IsDiscrete, bound_type PretendedBounds, bound_type RepresentedBounds>
+ struct static_interval;
+
     template <class DomainT, ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, DomainT)>
     struct interval
     {
@@ -93,9 +96,6 @@
 #endif
     };
 
- template <class IntervalT, bool IsDiscrete, bound_type PretendedBounds, bound_type RepresentedBounds>
- struct static_interval;
-
     template <class IntervalT, bound_type PretendedBounds, bound_type RepresentedBounds>
     struct static_interval<IntervalT, true, PretendedBounds, RepresentedBounds>
     {// is_discrete<domain_type<IntervalT>>

Modified: sandbox/itl/boost/itl/interval_base_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_map.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -20,17 +20,11 @@
 #include <boost/itl/detail/on_absorbtion.hpp>
 #include <boost/itl/detail/interval_map_algo.hpp>
 
-#include <boost/itl/concept/interval/base.hpp>
-#include <boost/itl/concept/interval_set.hpp>
-#include <boost/itl/concept/interval_map.hpp>
-#include <boost/itl/concept/interval_associator.hpp>
+#include <boost/itl/associative_interval_container.hpp>
 
 #include <boost/itl/type_traits/is_interval_splitter.hpp>
 #include <boost/itl/map.hpp>
 
-#define const_FOR_IMPLMAP(iter) for(typename ImplMapT::const_iterator iter=_map.begin(); (iter)!=_map.end(); (iter)++)
-#define FOR_IMPLMAP(iter) for(typename ImplMapT::iterator iter=_map.begin(); (iter)!=_map.end(); (iter)++)
-
 namespace boost{namespace icl
 {
 

Modified: sandbox/itl/boost/itl/interval_base_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_set.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -30,20 +30,13 @@
 #include <boost/itl/detail/interval_set_algo.hpp>
 #include <boost/itl/detail/exclusive_less_than.hpp>
 
-#include <boost/itl/concept/interval/base.hpp>
-#include <boost/itl/concept/interval_set.hpp>
-#include <boost/itl/concept/interval_map.hpp>
-#include <boost/itl/concept/interval_associator.hpp>
+#include <boost/itl/associative_interval_container.hpp>
 
 #include <boost/itl/right_open_interval.hpp>
 #include <boost/itl/continuous_interval.hpp>
 #include <boost/itl/detail/notate.hpp>
 #include <boost/itl/detail/element_iterator.hpp>
 
-#define const_FOR_IMPL(iter) for(typename ImplSetT::const_iterator iter=_set.begin(); (iter)!=_set.end(); (iter)++)
-#define FOR_IMPL(iter) for(typename ImplSetT::iterator iter=_set.begin(); (iter)!=_set.end(); (iter)++)
-
-
 namespace boost{namespace icl
 {
 
@@ -112,7 +105,7 @@
     //- Associated types: Related types
     //--------------------------------------------------------------------------
     /// The atomized type representing the corresponding container of elements
- typedef typename std::set<DomainT,domain_compare,Alloc<DomainT> > atomized_type;
+ typedef typename ICL_IMPL_SPACE::set<DomainT,domain_compare,Alloc<DomainT> > atomized_type;
 
     //--------------------------------------------------------------------------
     //- Associated types: Implementation and stl related

Modified: sandbox/itl/boost/itl/left_open_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/left_open_interval.hpp (original)
+++ sandbox/itl/boost/itl/left_open_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -10,9 +10,9 @@
 
 #include <functional>
 #include <boost/concept/assert.hpp>
+#include <boost/itl/concept/interval.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
-#include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -34,10 +34,7 @@
 #include <boost/itl/functors.hpp>
 #include <boost/itl/predicates.hpp>
 
-#include <boost/itl/detail/map_algo.hpp>
-#include <boost/itl/concept/container.hpp>
-#include <boost/itl/concept/element_map.hpp>
-#include <boost/itl/concept/element_associator.hpp>
+#include <boost/itl/associative_element_container.hpp>
 
 namespace boost{namespace icl
 {
@@ -125,7 +122,7 @@
     typedef typename inverse<codomain_intersect>::type inverse_codomain_intersect;
     typedef typename base_type::value_compare value_compare;
 
- typedef typename std::set<DomainT, domain_compare, Alloc<DomainT> > set_type;
+ typedef typename ICL_IMPL_SPACE::set<DomainT, domain_compare, Alloc<DomainT> > set_type;
     typedef set_type key_object_type;
 
 

Modified: sandbox/itl/boost/itl/open_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/open_interval.hpp (original)
+++ sandbox/itl/boost/itl/open_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -10,9 +10,9 @@
 
 #include <functional>
 #include <boost/concept/assert.hpp>
+#include <boost/itl/concept/interval.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
-#include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl/right_open_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/right_open_interval.hpp (original)
+++ sandbox/itl/boost/itl/right_open_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -10,9 +10,9 @@
 
 #include <functional>
 #include <boost/concept/assert.hpp>
+#include <boost/itl/concept/interval.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
-#include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -18,204 +18,8 @@
 #include <set>
 #endif
 
-#include <string>
-#include <boost/itl/detail/design_config.hpp>
-#include <boost/itl/detail/concept_check.hpp>
-#include <boost/itl/type_traits/to_string.hpp>
-#include <boost/itl/type_traits/is_set.hpp>
-#include <boost/itl/detail/subset_comparer.hpp>
-#include <boost/itl/detail/set_algo.hpp>
-#include <boost/itl/predicates.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/type_traits/is_same.hpp>
+#include <boost/itl/concept/associative_element_container.hpp>
 
-#include <boost/itl/concept/container.hpp>
-#include <boost/itl/concept/element_set.hpp>
-#include <boost/itl/concept/element_associator.hpp>
-#include <boost/itl/concept/comparable.hpp>
-
-
-namespace boost{namespace icl
-{
-
-/** \brief Addable, subtractable and intersectable sets. */
-template
-<
- typename DomainT,
- ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, DomainT),
- ICL_ALLOC Alloc = std::allocator
->
-class set: private ICL_IMPL_SPACE::set<DomainT, ICL_COMPARE_DOMAIN(Compare,DomainT), Alloc<DomainT> >
-{
-public:
- typedef typename icl::set<DomainT, Compare, Alloc> type;
- typedef typename ICL_IMPL_SPACE::set<DomainT, ICL_COMPARE_DOMAIN(Compare,DomainT), Alloc<DomainT> > base_type;
- typedef type key_object_type;
-
-public:
- typedef DomainT domain_type;
- typedef DomainT codomain_type;
- typedef DomainT element_type;
- typedef DomainT key_type;
- typedef DomainT value_type;
- typedef DomainT data_type;
- typedef ICL_COMPARE_DOMAIN(Compare,DomainT) domain_compare;
- typedef domain_compare element_compare;
- typedef ICL_COMPARE_DOMAIN(Compare,DomainT) key_compare;
- typedef ICL_COMPARE_DOMAIN(Compare,DomainT) value_compare;
- typedef Alloc<DomainT> allocator_type;
-
-public:
- typedef typename base_type::pointer pointer;
- typedef typename base_type::const_pointer const_pointer;
- typedef typename base_type::reference reference;
- typedef typename base_type::const_reference const_reference;
- typedef typename base_type::iterator iterator;
- typedef typename base_type::const_iterator const_iterator;
- typedef typename base_type::size_type size_type;
- typedef typename base_type::difference_type difference_type;
- typedef typename base_type::reverse_iterator reverse_iterator;
- typedef typename base_type::const_reverse_iterator const_reverse_iterator;
-
- enum { fineness = 4 };
-
-public:
- //==========================================================================
- //= Construct, copy, destruct
- //==========================================================================
- set()
- {
- BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
- BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- }
-
- explicit set(const domain_compare& comp): base_type(comp){}
-
- template <class InputIterator>
- set(InputIterator first, InputIterator past)
- : base_type(first,past){}
-
- template <class InputIterator>
- set(InputIterator first, InputIterator past, const key_compare& comp)
- : base_type(first, past, comp){}
-
- set(const set& src): base_type::set(src)
- {
- BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
- BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- }
-
- explicit set(const element_type& key): base_type::set()
- {
- insert(key);
- }
-
- set& operator=(const set& src) { base_type::operator=(src); return *this; }
- void swap(set& src) { base_type::swap(src); }
-
- /** Copy the elements in set \c src to which property \c hasProperty applies
- into \c *this set. */
- template<class Predicate>
- set& assign_if(const set& src, const Predicate&);
-
- //==========================================================================
- using base_type::empty;
- using base_type::clear;
-
- using base_type::begin;
- using base_type::end;
- using base_type::rbegin;
- using base_type::rend;
-
- using base_type::size;
- using base_type::max_size;
-
- using base_type::key_comp;
- using base_type::value_comp;
-
- using base_type::insert;
- using base_type::erase;
- using base_type::find;
- using base_type::count;
-
- using base_type::lower_bound;
- using base_type::upper_bound;
- using base_type::equal_range;
-
-public:
- //==========================================================================
- //= Containedness
- //==========================================================================
-
- /// Checks if the element \c value is in the set
- bool contains(const element_type& value)const
- { return icl::contains(*this, value); }
-
- /** Does <tt>*this</tt> contain <tt>sub</tt>? */
- bool contains(const set& sub)const
- { return icl::contains(*this, sub); }
-
- /** Is <tt>*this</tt> contained in <tt>super</tt>? */
- bool within(const set& super)const
- { return icl::within(*this, super); }
-
- /** <tt>*this</tt> and <tt>x2</tt> are disjoint, if their intersection is empty */
- bool disjoint(const set& x2)const
- { return icl::disjoint(*this, x2); }
-
- //==========================================================================
- //= Size
- //==========================================================================
- /** \c iterative_size() yields the number of elements that is visited
- throu complete iteration. For interval sets \c iterative_size() is
- different from \c size(). */
- std::size_t iterative_size()const { return base_type::size(); }
-
- size_t cardinality()const { return base_type::size(); }
-
- //==========================================================================
- //= Addition, subtraction
- //==========================================================================
- /** Add an \c element to the set. */
- set& add(const element_type& element)
- { return icl::insert(*this, element); }
-
- /** Add an element \c element after \c prior to the set. */
- iterator add(iterator prior, const element_type& element)
- { return icl::insert(*this, prior, element); }
-
- /** Subtract an \c element from the set. */
- set& subtract(const element_type& element)
- { return icl::subtract(*this, element); }
-
- //==========================================================================
- //= Symmetric difference
- //==========================================================================
- /** If \c *this set contains \c element it is erased, otherwise it is added. */
- set& flip(const element_type& element)
- { return icl::flip(*this, element); }
-};
-
-
-
-//-----------------------------------------------------------------------------
-// type traits
-//-----------------------------------------------------------------------------
-template <class Type>
-struct is_set<icl::set<Type> >
-{
- typedef is_set<icl::set<Type> > type;
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-
-template <class Type>
-struct type_to_string<icl::set<Type> >
-{
- static std::string apply()
- { return "set<"+ type_to_string<Type>::apply() +">"; }
-};
 
 }} // namespace icl boost
 

Modified: sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -57,13 +57,6 @@
>::type type;
     };
 
- //CL
- //template <class DomainT, class Compare, class Alloc>
- //struct codomain_type_of<std::set<DomainT,Compare,Alloc> >
- //{
- // typedef typename std::set<DomainT,Compare,Alloc>::value_type type;
- //};
-
 }} // namespace boost icl
 
 #endif

Modified: sandbox/itl/boost/itl/type_traits/is_container.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_container.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_container.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -12,6 +12,7 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/and.hpp>
 #include <boost/mpl/not.hpp>
+#include <boost/type_traits/is_same.hpp>
 #include <boost/itl/type_traits/element_type_of.hpp>
 #include <boost/itl/type_traits/segment_type_of.hpp>
 #include <boost/itl/type_traits/is_map.hpp>

Modified: sandbox/itl/boost/itl/type_traits/is_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_interval.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_interval.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -8,6 +8,7 @@
 #ifndef BOOST_ICL_TYPE_TRAITS_IS_INTERVAL_HPP_JOFA_100327
 #define BOOST_ICL_TYPE_TRAITS_IS_INTERVAL_HPP_JOFA_100327
 
+#include <boost/mpl/or.hpp>
 #include <boost/itl/interval_bounds.hpp>
 #include <boost/itl/interval_traits.hpp>
 

Modified: sandbox/itl/boost/itl_xt/episode_set.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/episode_set.hpp (original)
+++ sandbox/itl/boost/itl_xt/episode_set.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -31,7 +31,7 @@
 #define BOOST_ICL_EPISODE_SET_HPP_HPP_JOFA_011015
 
 #include <string>
-#include <boost/itl/set.hpp>
+#include <boost/itl_xt/set.hpp>
 #include <boost/itl_xt/typed_episode.hpp>
 
 namespace boost{namespace icl

Modified: sandbox/itl/boost/itl_xt/interval_bitset.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/interval_bitset.hpp (original)
+++ sandbox/itl/boost/itl_xt/interval_bitset.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -17,7 +17,6 @@
 #include <boost/itl_xt/bits.hpp> // a bitset implementation
 #include <boost/itl_xt/detail/bit_element_iterator.hpp>
 
-//CL #include <boost/itl/set.hpp> //JODO URG
 #include <boost/itl/detail/interval_morphism.hpp> //JODO Separate aspects and concerns
 
 

Modified: sandbox/itl/boost/itl_xt/itvgentor.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/itvgentor.hpp (original)
+++ sandbox/itl/boost/itl_xt/itvgentor.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -42,7 +42,7 @@
 namespace boost{namespace icl
 {
 
-template <class ItvDomTV, class ItvTV=icl::interval<ItvDomTV>::type>
+template <class ItvDomTV, class ItvTV=typename icl::interval<ItvDomTV>::type>
 class ItvGentorT: public RandomGentorAT<ItvTV>
 {
 public:

Modified: sandbox/itl/boost/itl_xt/setgentor.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/setgentor.hpp (original)
+++ sandbox/itl/boost/itl_xt/setgentor.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -64,7 +64,7 @@
     }
 
     void setRangeOfSampleSize(int lwb, int upb)
- { m_sampleSizeRange = _interval<int>::right_open(lwb,upb); }
+ { m_sampleSizeRange = interval<int>::right_open(lwb,upb); }
     void setRangeOfSampleSize(const icl::interval<int>::type& szRange)
     {
         BOOST_ASSERT(icl::bounds(szRange) == interval_bounds::right_open());

Modified: sandbox/itl/boost/itl_xt/string_set.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/string_set.hpp (original)
+++ sandbox/itl/boost/itl_xt/string_set.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -33,7 +33,7 @@
 
 #include <string>
 #include <string.h>
-#include <boost/itl/set.hpp>
+#include <boost/itl_xt/set.hpp>
 
 namespace boost{namespace icl
 {

Modified: sandbox/itl/boost/itl_xt/tuple_computer.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/tuple_computer.hpp (original)
+++ sandbox/itl/boost/itl_xt/tuple_computer.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -10,6 +10,7 @@
 #define __tuple_computer_JOFA_040614_H__
 
 #include <boost/itl/map.hpp>
+#include <boost/itl_xt/set.hpp>
 #include <boost/itl_xt/var_tuple_order.hpp>
 #include <boost/itl/split_interval_map.hpp>
 

Modified: sandbox/itl/boost/validate/laws/law_violations.hpp
==============================================================================
--- sandbox/itl/boost/validate/laws/law_violations.hpp (original)
+++ sandbox/itl/boost/validate/laws/law_violations.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -11,7 +11,7 @@
 #define BOOST_ICL_LAW_VIOLATIONS_HPP_JOFA_070411
 
 #include <string>
-#include <boost/itl/set.hpp>
+#include <boost/itl_xt/set.hpp>
 #include <boost/validate/loki_xt/Tuple.h>
 
 namespace boost{namespace icl
@@ -147,7 +147,7 @@
         const_iterator end()const { return _violations.begin(); }
 
         void clear() { icl::clear(_violations); }
- bool empty()const { return ICL_FUN_REN(empty, is_empty, _violations); }
+ bool empty()const { return icl::is_empty(_violations); }
         size_type size()const { return _violations.size(); }
 
         void reportFirst()const

Modified: sandbox/itl/boost/validate/validater/law_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/law_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/law_validater.hpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -14,7 +14,7 @@
 #include <boost/itl/ptime.hpp>
 
 #include <boost/validate/loki_xt/Tuple.h>
-#include <boost/itl/set.hpp>
+#include <boost/itl_xt/set.hpp>
 #include <boost/itl/map.hpp>
 #include <boost/validate/gentor/randomgentor.hpp>
 

Modified: sandbox/itl/libs/itl/example/custom_interval_/custom_interval.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/custom_interval_/custom_interval.cpp (original)
+++ sandbox/itl/libs/itl/example/custom_interval_/custom_interval.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -38,6 +38,8 @@
     int _first, _past;
 };
 
+namespace boost{ namespace icl
+{
 // Class template interval_traits serves as adapter to register and customize your interval class
 template<>
 struct interval_traits< MyInterval > //1. Partially specialize interval_traits for
@@ -63,6 +65,7 @@
     BOOST_STATIC_CONSTANT(bound_type, value = interval_bounds::static_right_open);//[lo..up)
 }; // and static_closed [lo..up]
 
+}} // namespace boost icl
 
 void custom_interval()
 {

Added: sandbox/itl/libs/itl/example/dynamic_interval_/dynamic_interval.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/example/dynamic_interval_/dynamic_interval.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,140 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example dynamic_interval.cpp \file dynamic_interval.cpp
+ \brief Intervals with dynamic interval bounds that can be changed at runtime.
+
+ Intervals types with dynamic interval bounds can represent closed and
+ open interval borders. Interval borders are not static or fixed for
+ the type but may change due to computations in interval containers.
+ Dynamically bounded intervals are the library default for interval
+ parameters in interval containers.
+
+ \include dynamic_interval_/dynamic_interval.cpp
+*/
+//[example_interval
+#include <iostream>
+#include <string>
+#include <math.h>
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/itl/interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+// Dynamically bounded intervals 'discrete_interval' and 'continuous_interval'
+// are indirectly included via interval containers as library defaults.
+#include "../toytime.hpp"
+#include <boost/itl/rational.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample interval.cpp <<\n";
+ cout << "----------------------------------------------------\n";
+
+ // Dynamically bounded intervals are the library default for
+ // interval parameters in interval containers.
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval_set<int>::interval_type
+ , discrete_interval<int> >::value
+ ));
+
+
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval_set<float>::interval_type
+ , continuous_interval<float> >::value
+ ));
+
+ // As we can see the library default chooses the appropriate
+ // class template instance discrete_interval<T> or continuous_interval<T>
+ // dependent on the domain_type T. The library default for intervals
+ // is also available via the template 'interval':
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval<int>::type
+ , discrete_interval<int> >::value
+ ));
+
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval<float>::type
+ , continuous_interval<float> >::value
+ ));
+
+ // template interval also provides static functions for the four border types
+
+ interval<int>::type int_interval = interval<int>::closed(3, 7);
+ interval<double>::type sqrt_interval = interval<double>::right_open(1/sqrt(2.0), sqrt(2.0));
+ interval<string>::type city_interval = interval<string>::left_open("Barcelona", "Boston");
+ interval<Time>::type time_interval = interval<Time>::open(Time(monday,8,30), Time(monday,17,20));
+
+ cout << "----- Dynamically bounded intervals ----------------------------------------\n";
+ cout << " discrete_interval<int> : " << int_interval << endl;
+ cout << "continuous_interval<double>: " << sqrt_interval << " does "
+ << string(contains(sqrt_interval, sqrt(2.0))?"":"NOT")
+ << " contain sqrt(2)" << endl;
+ cout << "continuous_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval,"Barcelona")?"":"NOT")
+ << " contain 'Barcelona'" << endl;
+ cout << "continuous_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval, "Berlin")?"":"NOT")
+ << " contain 'Berlin'" << endl;
+ cout << " discrete_interval<Time> : " << time_interval << "\n\n";
+
+ // Using dynamically bounded intervals allows to apply operations
+ // with intervals and also with elements on all interval containers
+ // including interval containers of continuous domain types:
+
+ interval<rational<int> >::type unit_interval
+ = interval<rational<int> >::right_open(rational<int>(0), rational<int>(1));
+ interval_set<rational<int> > unit_set(unit_interval);
+ interval_set<rational<int> > ratio_set(unit_set);
+ ratio_set -= rational<int>(1,3); // Subtract 1/3 from the set
+
+ cout << "----- Manipulation of single values in continuous sets ---------------------\n";
+ cout << "1/3 subtracted from [0..1) : " << ratio_set << endl;
+ cout << "The set does " << string(contains(ratio_set, rational<int>(1,3))?"":"NOT")
+ << " contain '1/3'" << endl;
+ ratio_set ^= unit_set;
+ cout << "Flipping the holey set : " << ratio_set << endl;
+ cout << "yields the subtracted : 1/3\n\n";
+
+ // Of course we can use interval types that are different from the
+ // library default by explicit instantiation:
+ split_interval_set<int, std::less, closed_interval<Time> > intuitive_times;
+ // Interval set 'intuitive_times' uses statically bounded closed intervals
+ intuitive_times += closed_interval<Time>(Time(monday, 9,00), Time(monday, 10,59));
+ intuitive_times += closed_interval<Time>(Time(monday, 10,00), Time(monday, 11,59));
+ cout << "----- Here we are NOT using the library default for intervals --------------\n";
+ cout << intuitive_times << endl;
+
+ return 0;
+}
+
+// Program output:
+//>>Interval Container Library: Sample interval.cpp <<
+//----------------------------------------------------
+//----- Dynamically bounded intervals ----------------------------------------
+// discrete_interval<int> : [3,7]
+//continuous_interval<double>: [0.707107,1.41421) does NOT contain sqrt(2)
+//continuous_interval<string>: (Barcelona,Boston] does NOT contain 'Barcelona'
+//continuous_interval<string>: (Barcelona,Boston] does contain 'Berlin'
+// discrete_interval<Time> : (mon:08:30,mon:17:20)
+//
+//----- Manipulation of single values in continuous sets ---------------------
+//1/3 subtracted from [0..1) : {[0/1,1/3)(1/3,1/1)}
+//The set does NOT contain '1/3'
+//Flipping the holey set : {[1/3,1/3]}
+//yields the subtracted : 1/3
+//
+//----- Here we are NOT using the library default for intervals --------------
+//{[mon:09:00,mon:09:59][mon:10:00,mon:10:59][mon:11:00,mon:11:59]}
+//]
+

Added: sandbox/itl/libs/itl/example/dynamic_interval_/vc9_dynamic_interval.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/example/dynamic_interval_/vc9_dynamic_interval.vcproj 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_dynamic_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}"
+ RootNamespace="Dynamic_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\dynamic_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\dynamic_interval.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Modified: sandbox/itl/libs/itl/example/interval_/interval.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/interval_/interval.cpp (original)
+++ sandbox/itl/libs/itl/example/interval_/interval.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -63,7 +63,7 @@
         = construct<discrete_interval<Time> >(Time(monday,8,30), Time(monday,17,20),
                                               interval_bounds::open());
 
- cout << "Dynamically bounded interval\n";
+ cout << "Dynamically bounded intervals:\n";
     cout << " discrete_interval<int>: " << int_interval << endl;
     cout << "continuous_interval<double>: " << sqrt_interval << " does "
                                             << string(contains(sqrt_interval, sqrt(2.0))?"":"NOT")
@@ -87,7 +87,7 @@
     right_open_interval<rational<int> > range2(rational<int>(1,3), rational<int>(1,1));
 
     // This middle third of the unit interval [0,1)
- cout << "Statically bounded interval\n";
+ cout << "Statically bounded interval:\n";
     cout << "right_open_interval<rational<int>>: " << (range1 & range2) << endl;
 
     return 0;
@@ -97,7 +97,7 @@
 
 //>>Interval Container Library: Sample interval.cpp <<
 //----------------------------------------------------
-//Dynamically bounded interval
+//Dynamically bounded intervals
 // discrete_interval<int>: [3,7]
 //continuous_interval<double>: [0.707107,1.41421) does NOT contain sqrt(2)
 //continuous_interval<string>: (Barcelona,Boston] does NOT contain 'Barcelona'

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 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -18,7 +18,7 @@
     (bitset compression).
 
     Find a commented sample implementation in the boost book documentation
- <a href="http://www.herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/boost_itl/projects.html#boost_itl.projects.large_bitset">
+ <a href="http://www.joachim-faulhaber.de/boost_itl/doc/libs/itl/doc/html/boost_itl/projects.html#boost_itl.projects.large_bitset">
     here</a>.
 
     \include large_bitset_/large_bitset.cpp

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 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -113,7 +113,7 @@
     //]
 
     //[large_bitset_demo_functions
- size_t interval_count()const { return icl::interval_count(_map); }
+ size_t interval_count()const { return boost::icl::interval_count(_map); }
 
     void show_segments()const
     {
@@ -128,6 +128,7 @@
 
     void show_matrix(const char off_on[2] = " 1")const
     {
+ using namespace boost;
         typename interval_bitmap_type::const_iterator iter = _map.begin();
         while(iter != _map.end())
         {
@@ -164,7 +165,8 @@
 
     //[large_bitset_segment_apply
     large_bitset& segment_apply(segment_combiner combine, const interval_type& operand)
- { // same as
+ {
+ using namespace boost; // same as
         element_type base = icl::first(operand) >> shift, // icl::first(operand) / divisor
                        ceil = icl::last (operand) >> shift; // icl::last (operand) / divisor
         word_type base_rest = icl::first(operand) & mask , // icl::first(operand) % divisor

Added: sandbox/itl/libs/itl/example/static_interval_/static_interval.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/example/static_interval_/static_interval.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,123 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example static_interval.cpp \file static_interval.cpp
+ \brief Intervals with static interval bounds.
+
+ Intervals types with static or fixed interval bounds. Statically
+ bounded intervals use up to 33% less memory than dynamically
+ bounded ones. Of the four possible statically bounded intervals types
+ right_open_intervals are the most important ones. We can switch the
+ library default to statically bounded intervals by defining
+ BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS.
+
+ \include static_interval_/static_interval.cpp
+*/
+//[example_interval
+#include <iostream>
+#include <string>
+#include <math.h>
+#include <boost/type_traits/is_same.hpp>
+
+// We can change the library default for the interval types by defining
+#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+// prior to other inluces from the icl.
+// The interval type that is automatically used with interval
+// containers then is the statically bounded right_open_interval.
+
+#include <boost/itl/interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+// The statically bounded interval type 'right_open_interval'
+// is indirectly included via interval containers.
+
+
+#include "../toytime.hpp"
+#include <boost/itl/rational.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+int main()
+{
+ cout << ">> Interval Container Library: Sample static_interval.cpp <<\n";
+ cout << "------------------------------------------------------------\n";
+
+ // Statically bounded intervals are the user defined library default for
+ // interval parameters in interval containers now.
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval_set<int>::interval_type
+ , right_open_interval<int> >::value
+ ));
+
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval_set<float>::interval_type
+ , right_open_interval<float> >::value
+ ));
+
+ // As we can see the library default both for discrete and continuous
+ // domain_types T is 'right_open_interval<T>'.
+ // The user defined library default for intervals is also available via
+ // the template 'interval':
+ BOOST_STATIC_ASSERT((
+ is_same< typename interval<int>::type
+ , right_open_interval<int> >::value
+ ));
+
+ // Again we are declaring and initializing the four test intervals that have been used
+ // in the example 'interval' and 'dynamic_interval'
+ interval<int>::type int_interval = interval<int>::right_open(3, 8); // shifted the upper bound
+ interval<double>::type sqrt_interval = interval<double>::right_open(1/sqrt(2.0), sqrt(2.0));
+
+ // Interval ("Barcelona", "Boston"] can not be represented because there is no 'steppable next' on
+ // lower bound "Barcelona". Ok. this is a different interval:
+ interval<string>::type city_interval = interval<string>::right_open("Barcelona", "Boston");
+
+ // Toy Time is discrete again so we can transfrom open(Time(monday,8,30), Time(monday,17,20))
+ // to right_open(Time(monday,8,31), Time(monday,17,20))
+ interval<Time>::type time_interval = interval<Time>::right_open(Time(monday,8,31), Time(monday,17,20));
+
+ cout << "----- Statically bounded intervals ----------------------------------------\n";
+ cout << "right_open_interval<int> : " << int_interval << endl;
+ cout << "right_open_interval<double>: " << sqrt_interval << " does "
+ << string(contains(sqrt_interval, sqrt(2.0))?"":"NOT")
+ << " contain sqrt(2)" << endl;
+ cout << "right_open_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval,"Barcelona")?"":"NOT")
+ << " contain 'Barcelona'" << endl;
+ cout << "right_open_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval, "Boston")?"":"NOT")
+ << " contain 'Boston'" << endl;
+ cout << "right_open_interval<Time> : " << time_interval << "\n\n";
+
+ // Using statically bounded intervals does not allows to apply operations
+ // with elements on all interval containers, if their domain_type is continuous.
+ // The code that follows is identical to example 'dynamic_interval'. Only 'internally'
+ // the library default for the interval template now is 'right_open_interval'
+ interval<rational<int> >::type unit_interval
+ = interval<rational<int> >::right_open(rational<int>(0), rational<int>(1));
+ interval_set<rational<int> > unit_set(unit_interval);
+ interval_set<rational<int> > ratio_set(unit_set);
+ // ratio_set -= rational<int>(1,3); // This line will not compile, because we can not
+ // represent a singleton interval as right_open_interval.
+ return 0;
+}
+
+// Program output:
+//>> Interval Container Library: Sample static_interval.cpp <<
+//------------------------------------------------------------
+//----- Statically bounded intervals ----------------------------------------
+//right_open_interval<int> : [3,8)
+//right_open_interval<double>: [0.707107,1.41421) does NOT contain sqrt(2)
+//right_open_interval<string>: [Barcelona,Boston) does contain 'Barcelona'
+//right_open_interval<string>: [Barcelona,Boston) does NOT contain 'Boston'
+//right_open_interval<Time> : [mon:08:31,mon:17:20)
+//]
+

Added: sandbox/itl/libs/itl/example/static_interval_/vc9_static_interval.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/example/static_interval_/vc9_static_interval.vcproj 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_static_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}"
+ RootNamespace="Static_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\static_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\static_interval.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Modified: sandbox/itl/libs/itl/example/vc9_itl_examples.sln
==============================================================================
--- sandbox/itl/libs/itl/example/vc9_itl_examples.sln (original)
+++ sandbox/itl/libs/itl/example/vc9_itl_examples.sln 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -29,6 +29,10 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_custom_interval", "custom_interval_\vc9_custom_interval.vcproj", "{0D1DB87E-E72A-4FE9-A067-1907CC6614F8}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_dynamic_interval", "dynamic_interval_\vc9_dynamic_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_static_interval", "static_interval_\vc9_static_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -91,6 +95,14 @@
                 {0D1DB87E-E72A-4FE9-A067-1907CC6614F8}.Debug|Win32.Build.0 = Debug|Win32
                 {0D1DB87E-E72A-4FE9-A067-1907CC6614F8}.Release|Win32.ActiveCfg = Release|Win32
                 {0D1DB87E-E72A-4FE9-A067-1907CC6614F8}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE

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 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -42,7 +42,7 @@
 #include <boost/itl_xt/detail/bit_element_iterator.hpp>
 #include <boost/itl_xt/interval_bitset.hpp>
 #include <boost/itl_xt/list.hpp>
-#include <boost/itl/set.hpp> //JODO
+#include <boost/itl_xt/set.hpp>
 
 #include <limits>
 #include <bitset>

Modified: sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set.cpp (original)
+++ sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -16,6 +16,10 @@
 #include "../test_value_maker.hpp"
 #include "../test_laws.hpp"
 
+#include <set>
+#include <boost/interprocess/containers/set.hpp>
+#include <boost/itl/associative_element_container.hpp>
+
 #include <boost/itl/interval_set.hpp>
 #include <boost/itl/separate_interval_set.hpp>
 #include <boost/itl/split_interval_set.hpp>

Modified: sandbox/itl/libs/itl_xt/test/itvmaptester.h
==============================================================================
--- sandbox/itl/libs/itl_xt/test/itvmaptester.h (original)
+++ sandbox/itl/libs/itl_xt/test/itvmaptester.h 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -4,6 +4,7 @@
 #ifndef __ITVMAPTESTER_H_JOFA_990226__
 #define __ITVMAPTESTER_H_JOFA_990226__
 
+#include <boost/itl/associative_element_container.hpp>
 #include <boost/itl_xt/itvgentor.hpp>
 #include <boost/itl_xt/mapgentor.hpp>
 
@@ -101,7 +102,7 @@
         if(!valueIsInsertionIndependent(y, y_perm))
         {
             if(true==correct) { min_y = y; min_y_perm = y_perm; correct=false; }
- else if( y.interval_count() < min_y.interval_count() ) {
+ else if( interval_count(y) < interval_count(min_y) ) {
                 min_y = y; min_y_perm = y_perm;
             }
         }
@@ -124,7 +125,7 @@
     ItvMapTV x, x_perm, x_join;
     m_ContainerGentor.some(x);
     x_join = x;
- x_join.join();
+ join(x_join);
     
     if(! x.isEqual(x_join) ) { y = x; y_join = x_join; return false; }
     else return true;
@@ -145,11 +146,11 @@
             if(true==correct) {
                 min_y = y; min_y_join = y_join;
                 correct=false;
- std::cout << "y.sz=" << y.interval_count() << " try=" << i << std::endl;
+ std::cout << "y.sz=" << interval_count(y) << " try=" << i << std::endl;
             }
- else if( y.interval_count() < min_y.interval_count() ) {
+ else if( interval_count(y) < interval_count(min_y) ) {
                 min_y = y; min_y_join = y_join;
- std::cout << "y.sz=" << y.interval_count() << " try=" << i << std::endl;
+ std::cout << "y.sz=" << interval_count(y) << " try=" << i << std::endl;
             }
         }
 
@@ -173,7 +174,7 @@
     m_ContainerGentor.some(x);
     m_ContainerGentor.last_permuted(x_perm);
     x_permJoin = x_perm;
- x_permJoin.join();
+ join(x_permJoin);
     
     if(! x.isEqual(x_permJoin) ) {
         y = x; y_perm = x_perm; y_permJoin = x_permJoin;
@@ -198,11 +199,11 @@
             if(true==correct) {
                 min_y = y; min_y_perm = y_perm; min_y_permJoin = y_permJoin;
                 correct=false;
- std::cout << "y.sz=" << y.interval_count() << " try=" << i << std::endl;
+ std::cout << "y.sz=" << interval_count(y) << " try=" << i << std::endl;
             }
- else if( y.interval_count() < min_y.interval_count() ) {
+ else if( interval_count(y) < interval_count(min_y) ) {
                 min_y = y; min_y_perm = y_perm; min_y_permJoin = y_permJoin;
- std::cout << "y.sz=" << y.interval_count() << " try=" << i << std::endl;
+ std::cout << "y.sz=" << interval_count(y) << " try=" << i << std::endl;
             }
         }
     }
@@ -238,7 +239,7 @@
     m_ContainerGentor.some(yy);
     m_ContainerGentor.last_permuted(yy_perm);
     yy_permJoin = yy_perm;
- yy_permJoin.join();
+ join(yy_permJoin);
 
     xx2 = xx;
     xx2 += yy;
@@ -268,12 +269,12 @@
     {
         if(!isInsertReversible1(x, y, y_perm, y_permJoin, x_plus_y, x2))
         {
- caseSize = x.interval_count() + y.interval_count();
+ caseSize = interval_count(x) + interval_count(y);
             if(true==correct) {
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y = x_plus_y; min_x2 = x2;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << x.interval_count() << " y.sz=" << y.interval_count()
+ std::cout << "x.sz=" << interval_count(x) << " y.sz=" << interval_count(y)
                      << " try=" << i << std::endl;
                 correct=false;
             }
@@ -282,7 +283,7 @@
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y = x_plus_y; min_x2 = x2;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << x.interval_count() << " y.sz=" << y.interval_count()
+ std::cout << "x.sz=" << interval_count(x) << " y.sz=" << interval_count(y)
                      << " try=" << i << std::endl;
             }
         }
@@ -324,7 +325,7 @@
     (const ItvMapTV& x, const ItvMapTV& y, const ItvMapTV y_perm)
 {
     ItvMapTV x2 = x, y_pj = y_perm;
- y_pj.join();
+ join(y_pj);
 
     x2 += y_pj;
     x2 -= y;
@@ -350,13 +351,13 @@
     m_ContainerGentor.some(yy);
     m_ContainerGentor.last_permuted(yy_perm);
     yy_permJoin = yy_perm;
- yy_permJoin.join();
+ join(yy_permJoin);
 
     xx2 = xx;
     xx2 += yy_permJoin;
     xx_plus_yy_pj = xx2;
     xx2 -= yy;
- xx2.join();
+ join(xx2);
     
     if(! is_element_equal(xx, xx2) ) {
         x = xx; y = yy; y_perm = yy_perm; y_permJoin = yy_permJoin;
@@ -380,14 +381,14 @@
     for(int i=0; i<nTries; i++) {
         if(!isInsertReversible2(x, y, y_perm, y_permJoin, x_plus_y_pj, x2))
         {
- caseSize = x.interval_count() + y.interval_count();
+ caseSize = interval_count(x) + interval_count(y);
             if(true==correct) {
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y_pj = x_plus_y_pj;
                 min_x2 = x2;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
                 correct=false;
             }
@@ -396,8 +397,8 @@
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y_pj = x_plus_y_pj; min_x2 = x2;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
             }
         }
@@ -437,7 +438,7 @@
 void ItvMapTesterT<ItvMapTV>::debugInsertReversibility2(const ItvMapTV& x, const ItvMapTV& y, const ItvMapTV y_perm)
 {
     ItvMapTV x2 = x, y_pj = y_perm;
- y_pj.join();
+ join(y_pj);
 
     x2 += y_pj;
     x2 -= y;
@@ -458,13 +459,13 @@
     m_ContainerGentor.some(erasure);
 
     interval_set_type erasureDomain;
- erasure.domain(erasureDomain);
+ domain(erasure, erasureDomain);
 
     ItvMapTV xxResid = xx;
     xxResid -= erasureDomain;
 
     interval_set_type xxDomain;
- xx.domain(xxDomain);
+ domain(xx, xxDomain);
 
     interval_set_type erasureComplement;
     erasureComplement = xxDomain;
@@ -498,14 +499,14 @@
     for(int i=0; i<nTries; i++) {
         if(!hasErasureAsIntersectionComputability(x, y, xDom_minus_y, x_resid, x_section))
         {
- caseSize = static_cast<int>(x.interval_count() + y.interval_count());
+ caseSize = static_cast<int>(interval_count(x) + interval_count(y));
             if(true==correct) {
                 min_x = x; min_y = y;
                 min_xDom_minus_y = xDom_minus_y;
                 min_x_resid = x_resid; min_x_section = x_section;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
                 correct=false;
             }
@@ -515,8 +516,8 @@
                 min_xDom_minus_y = xDom_minus_y;
                 min_x_resid = x_resid; min_x_section = x_section;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
             }
         }

Modified: sandbox/itl/libs/itl_xt/test/itvsettester.h
==============================================================================
--- sandbox/itl/libs/itl_xt/test/itvsettester.h (original)
+++ sandbox/itl/libs/itl_xt/test/itvsettester.h 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -140,7 +140,7 @@
         if(!valueIsInsertionIndependent(y, y_perm))
         {
             if(true==correct) { min_y = y; min_y_perm = y_perm; correct=false; }
- else if( y.interval_count() < min_y.interval_count() ) {
+ else if( interval_count(y) < interval_count(min_y) ) {
                 min_y = y; min_y_perm = y_perm;
             }
         }
@@ -163,7 +163,7 @@
     ItvSetTV x, x_perm, x_join;
     m_ContainerGentor.some(x);
     x_join = x;
- x_join.join();
+ join(x_join);
     
     if(!(x == x_join) ) { y = x; y_join = x_join; return false; }
     else return true;
@@ -184,11 +184,11 @@
             if(true==correct) {
                 min_y = y; min_y_join = y_join;
                 correct=false;
- std::cout << "y.sz=" << static_cast<unsigned int>(y.interval_count()) << " try=" << i << std::endl;
+ std::cout << "y.sz=" << static_cast<unsigned int>(interval_count(y)) << " try=" << i << std::endl;
             }
- else if( y.interval_count() < min_y.interval_count() ) {
+ else if( interval_count(y) < interval_count(min_y) ) {
                 min_y = y; min_y_join = y_join;
- std::cout << "y.sz=" << static_cast<unsigned int>(y.interval_count()) << " try=" << i << std::endl;
+ std::cout << "y.sz=" << static_cast<unsigned int>(interval_count(y)) << " try=" << i << std::endl;
             }
         }
 
@@ -211,7 +211,7 @@
     m_ContainerGentor.some(x);
     m_ContainerGentor.last_permuted(x_perm);
     x_permJoin = x_perm;
- x_permJoin.join();
+ join(x_permJoin);
     
     if(! x.isEqual(x_permJoin) ) {
         y = x; y_perm = x_perm; y_permJoin = x_permJoin;
@@ -236,11 +236,11 @@
             if(true==correct) {
                 min_y = y; min_y_perm = y_perm; min_y_permJoin = y_permJoin;
                 correct=false;
- std::cout << "y.sz=" << y.interval_count() << " try=" << i << std::endl;
+ std::cout << "y.sz=" << interval_count(y) << " try=" << i << std::endl;
             }
- else if( y.interval_count() < min_y.interval_count() ) {
+ else if( interval_count(y) < interval_count(min_y) ) {
                 min_y = y; min_y_perm = y_perm; min_y_permJoin = y_permJoin;
- std::cout << "y.sz=" << y.interval_count() << " try=" << i << std::endl;
+ std::cout << "y.sz=" << interval_count(y) << " try=" << i << std::endl;
             }
         }
     }
@@ -275,7 +275,7 @@
     m_ContainerGentor.some(yy);
     m_ContainerGentor.last_permuted(yy_perm);
     yy_permJoin = yy_perm;
- yy_permJoin.join();
+ join(yy_permJoin);
 
     lhs = xx;
     lhs += yy;
@@ -306,14 +306,14 @@
     {
         if(!isInsertReversible(x, y, y_perm, y_permJoin, x_plus_y, lhs, rhs))
         {
- caseSize = static_cast<unsigned int>(x.interval_count() + y.interval_count());
+ caseSize = static_cast<unsigned int>(interval_count(x) + interval_count(y));
             if(true==correct) {
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y = x_plus_y;
                 min_lhs = lhs; min_rhs = rhs;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
                 correct=false;
             }
@@ -323,8 +323,8 @@
                 min_y_permJoin = y_permJoin; min_x_plus_y = x_plus_y;
                 min_lhs = lhs; min_rhs = rhs;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
             }
         }
@@ -390,7 +390,7 @@
     m_ContainerGentor.some(yy);
     m_ContainerGentor.last_permuted(yy_perm);
     yy_permJoin = yy_perm;
- yy_permJoin.join();
+ join(yy_permJoin);
 
     xx2 = xx;
     xx2 += yy;
@@ -420,12 +420,12 @@
     {
         if(!isInsertReversible1(x, y, y_perm, y_permJoin, x_plus_y, x2))
         {
- caseSize = x.interval_count() + y.interval_count();
+ caseSize = interval_count(x) + interval_count(y);
             if(true==correct) {
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y = x_plus_y; min_x2 = x2;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << x.interval_count() << " y.sz=" << y.interval_count()
+ std::cout << "x.sz=" << interval_count(x) << " y.sz=" << interval_count(y)
                      << " try=" << i << std::endl;
                 correct=false;
             }
@@ -434,7 +434,7 @@
                 min_x = x; min_y = y; min_y_perm = y_perm;
                 min_y_permJoin = y_permJoin; min_x_plus_y = x_plus_y; min_x2 = x2;
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << x.interval_count() << " y.sz=" << y.interval_count()
+ std::cout << "x.sz=" << interval_count(x) << " y.sz=" << interval_count(y)
                      << " try=" << i << std::endl;
             }
         }
@@ -476,7 +476,7 @@
     (const ItvSetTV& x, const ItvSetTV& y, const ItvSetTV y_perm)
 {
     ItvSetTV x2 = x, y_pj = y_perm;
- y_pj.join();
+ join(y_pj);
 
     x2 += y_pj;
     x2 -= y;
@@ -552,15 +552,15 @@
         if(!hasSymmetricDifference(x, y, x_uni_y, x_sec_y, x_sub_y, y_sub_x))
         {
             // collect results to find the smallest invalid case
- caseSize = static_cast<unsigned int>(x.interval_count() + y.interval_count());
+ caseSize = static_cast<unsigned int>(interval_count(x) + interval_count(y));
             if(true==correct) {
                 min_x = x; min_y = y;
                 /*
                 more results
                 */
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
                 correct=false;
             }
@@ -571,8 +571,8 @@
                 more results
                 */
                 min_caseSize = caseSize;
- std::cout << "x.sz=" << static_cast<unsigned int>(x.interval_count())
- << " y.sz=" << static_cast<unsigned int>(y.interval_count())
+ std::cout << "x.sz=" << static_cast<unsigned int>(interval_count(x))
+ << " y.sz=" << static_cast<unsigned int>(interval_count(y))
                      << " try=" << i << std::endl;
             }
         }

Modified: sandbox/itl/libs/validate/example/labat_map_order_/labat_map_order.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_map_order_/labat_map_order.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_map_order_/labat_map_order.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -11,7 +11,6 @@
 #include <stdio.h>
 
 #include <boost/validate/loki_xt/Tuple.h>
-#include <boost/itl/set.hpp>
 #include <boost/itl/map.hpp>
 #include <boost/validate/gentor/gentorprofile.hpp>
 #include <boost/validate/gentor/rangegentor.hpp>

Modified: sandbox/itl/libs/validate/example/labat_set_order_/labat_set_order.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_set_order_/labat_set_order.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_set_order_/labat_set_order.cpp 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -11,7 +11,6 @@
 #include <stdio.h>
 
 #include <boost/validate/loki_xt/Tuple.h>
-#include <boost/itl/set.hpp>
 #include <boost/itl/map.hpp>
 #include <boost/validate/gentor/gentorprofile.hpp>
 #include <boost/validate/gentor/rangegentor.hpp>

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 2010-10-24 06:49:07 EDT (Sun, 24 Oct 2010)
@@ -13,7 +13,7 @@
 #include <boost/itl/ptime.hpp>
 
 #include <boost/itl/right_open_interval.hpp>
-#include <boost/itl/set.hpp>
+#include <boost/itl_xt/set.hpp>
 #include <boost/itl/map.hpp>
 #include <boost/itl/detail/interval_morphism.hpp>
 #include <boost/validate/itl/functors.hpp>


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