$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r58051 - in sandbox/itl/libs: itl/doc itl/example/large_bitset_ itl/test itl/test/test_casual_ validate/example validate/example/labat_itv_bitset_ validate/example/labat_polygon_ validate/example/labat_single_ validate/example/labat_sorted_associative_bitset_ validate/example/labat_sorted_associative_map_ validate/example/labat_sorted_associative_set_
From: afojgo_at_[hidden]
Date: 2009-11-30 05:44:11
Author: jofaber
Date: 2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
New Revision: 58051
URL: http://svn.boost.org/trac/boost/changeset/58051
Log:
Added law based tests for element_iterators. Bugfixed bit_element_iterators for interval_bitset. 
Added documentation on element_iterators. Stable {msvc-9.0} 
Added:
   sandbox/itl/libs/itl/doc/functions_element_iteration.qbk   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/
   sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/labat_sorted_associative_bitset.cpp   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/vc9_labat_sorted_associative_bitset.vcproj   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_sorted_associative_map_/
   sandbox/itl/libs/validate/example/labat_sorted_associative_map_/labat_sorted_associative_map.cpp   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_sorted_associative_map_/vc9_labat_sorted_associative_map.vcproj   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_sorted_associative_set_/
   sandbox/itl/libs/validate/example/labat_sorted_associative_set_/labat_sorted_associative_set.cpp   (contents, props changed)
   sandbox/itl/libs/validate/example/labat_sorted_associative_set_/vc9_labat_sorted_associative_set.vcproj   (contents, props changed)
Text files modified: 
   sandbox/itl/libs/itl/doc/functions.qbk                                          |     1                                         
   sandbox/itl/libs/itl/doc/interface.qbk                                          |    41 ++++++                                  
   sandbox/itl/libs/itl/doc/itl.qbk                                                |     1                                         
   sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp                     |     5                                         
   sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp                          |   263 ++++++++++++++++++++++++++++++++++++++- 
   sandbox/itl/libs/itl/test/test_type_lists.hpp                                   |     2                                         
   sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj |    36 -----                                   
   sandbox/itl/libs/validate/example/labat_polygon_/labat_polygon.cpp              |    17 +-                                      
   sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp                |    34 ++++-                                   
   sandbox/itl/libs/validate/example/vc9_validate_examples.sln                     |    24 +++                                     
   10 files changed, 363 insertions(+), 61 deletions(-)
Modified: sandbox/itl/libs/itl/doc/functions.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/functions.qbk	(original)
+++ sandbox/itl/libs/itl/doc/functions.qbk	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -256,6 +256,7 @@
 [include functions_intersection.qbk]
 [include functions_symmetric_difference.qbk]
 [include functions_iterator_related.qbk]
+[include functions_element_iteration.qbk]
 [include functions_streaming.qbk]
 
 
Added: sandbox/itl/libs/itl/doc/functions_element_iteration.qbk
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/doc/functions_element_iteration.qbk	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,79 @@
+[/
+    Copyright (c) 2008-2009 Joachim Faulhaber
+
+    Distributed under the Boost Software License, Version 1.0.
+    (See accompanying file LICENSE_1_0.txt or copy at
+    http://www.boost.org/LICENSE_1_0.txt)
+]
+
+
+[/ //= Element iteration ===================================================================]
+[section Element iteration]
+
+This section refers to ['*element iteration*] over ['*interval containers*].
+Element iterators are available as associated types on interval sets and interval maps.
+
+[table
+[[Variant]      [Associated element iterator type for interval container `T`]]
+[[forward]      [`T::element_iterator`]                                    ]
+[[const forward][`T::element_const_iterator`]                              ]
+[[reverse]      [`T::element_reverse_iterator`]                            ]
+[[const reverse][`T::element_const_reverse_iterator`]                      ]
+]
+
+There are also associated iterators types 
+`T::iterator`, `T::const_iterator`, 
+`T::reverse_iterator` and `T::reverse_const_iterator`
+on interval containers.
+These are ['*segment iterators*]. Segment iterators are 
+"first citizen iterators". [/ NOTE Identical to interface.qbk from here]
+Iteration over segments is fast, compared to an iteration over elements,
+particularly if intervals are large. 
+But if we want to view our interval containers as containers
+of elements that are usable with std::algoritms, we need to
+iterate over elements. 
+
+Iteration over elements . . .
+
+* is possible only for integral or discrete `domain_types`
+* can be very ['*slow*] if the intervals are very large.
+* and is therefore ['*depreciated*]
+
+On the other hand, sometimes iteration over interval containers
+on the element level might be desired, if you have some 
+interface that works for `std::SortedAssociativeContainers` of 
+elements and you need to quickly use it with an interval container.
+Accepting the poorer performance might be less bothersome at times
+than adjusting your whole interface for segment iteration.
+
+[caution So we advice you to choose element iteration over
+interval containers ['*judiciously*]. Do not use element iteration
+['*by default or habitual*]. Always try to achieve results using
+member functions, global functions or operators 
+(preferably inplace versions)
+or iteration over segments first.]
+
+
+[table
+[[['*Synopsis Complexities*]]   [__ch_itv_sets__][__ch_itv_maps__]]
+[[`J T::elements_begin()`]               [__O1__]    [__O1__]     ]
+[[`J T::elements_end()`]                 [__O1__]    [__O1__]     ]
+[[`J T::elements_rbegin()`]              [__O1__]    [__O1__]     ]
+[[`J T::elements_rend()`]                [__O1__]    [__O1__]     ]
+]
+
+[table
+[[['*Element iteration*]]                                      [Description]     ]
+[[``      T::element_iterator T::elements_begin()
+T::element_const_iterator T::elements_begin()const``]          [Returns an element iterator to the first element of the container.]                        ]
+[[``      T::element_iterator T::elements_end()
+T::element_const_iterator T::elements_end()const``]            [Returns an element iterator to a position `elements_end()` after the last element of the container.]]
+[[``      T::element_reverse_iterator T::elements_rbegin()
+T::element_const_reverse_iterator T::elements_rbegin()const``] [Returns a reverse element iterator to the last element of the container.]                  ]
+[[``      T::element_reverse_iterator T::elements_rend()
+T::element_const_reverse_iterator T::elements_rend()const``]   [Returns a reverse element iterator to a position `elements_rend()` before the first element of the container.]]
+]
+
+[endsect][/ Element iteration]
+
+
Modified: sandbox/itl/libs/itl/doc/interface.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/interface.qbk	(original)
+++ sandbox/itl/libs/itl/doc/interface.qbk	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -524,6 +524,47 @@
 [[`std::string T::as_string()`]                [1]       [1]      [1]     [1]      [1]      [ ]      [ ]]
 ]
 
+[h4 Element iterators for interval containers]
+
+Iterators on [*interval conainers] that are refered to so far are
+['*segment iterators*]. They reveal the more implementation specific
+aspect, that the conceptual aspect abstracts from.[/ NOTE Identical to function_element_iteration.qbk from here]
+Iteration over segments is fast, compared to an iteration over elements,
+particularly if intervals are large. 
+But if we want to view our interval containers as containers
+of elements that are usable with std::algoritms, we need to
+iterate over elements. 
+
+Iteration over elements . . .
+
+* is possible only for integral or discrete `domain_types`
+* can be very ['*slow*] if the intervals are very large.
+* and is therefore ['*depreciated*]
+
+On the other hand, sometimes iteration over interval containers
+on the element level might be desired, if you have some 
+interface that works for `std::SortedAssociativeContainers` of 
+elements and you need to quickly use it with an interval container.
+Accepting the poorer performance might be less bothersome at times
+than adjusting your whole interface for segment iteration.
+
+[caution So we advice you to choose element iteration over
+interval containers ['*judiciously*]. Do not use element iteration
+['*by default or habitual*]. Always try to achieve results using
+member functions, global functions or operators 
+(preferably inplace versions)
+or iteration over segments first.]
+
+ 
+[table Element iterators for interval containers
+[[__biLElementIteration__]      [__ch_itv_sets__][__ch_itv_maps__] ]
+[[`J T::elements_begin()`]            [2]              [2]        ]
+[[`J T::elements_end()`]              [2]              [2]        ]
+[[`J T::elements_rbegin()`]           [2]              [2]        ]
+[[`J T::elements_rend()`]             [2]              [2]        ]
+]
+
+
 [endsect][/ Function Synopsis]
 
 [endsect][/ Interface]
Modified: sandbox/itl/libs/itl/doc/itl.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/itl.qbk	(original)
+++ sandbox/itl/libs/itl/doc/itl.qbk	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -145,6 +145,7 @@
 [def __biLintersection__ [link boost_itl.function_reference.intersection ['*intersection*]]]
 [def __biLSymmetricDifference__ [link boost_itl.function_reference.symmetric_difference ['*Symmetric difference*]]]
 [def __biLIteratorRelated__ [link boost_itl.function_reference.iterator_related ['*Iterator related*]]]
+[def __biLElementIteration__ [link boost_itl.function_reference.element_iteration ['*Element iteration*]]]
 [def __biLStreaming__    [link boost_itl.function_reference.streaming__conversion ['*Streaming, conversion*]]]
 
 [/ column headers]
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-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -143,6 +143,7 @@
     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
+        last    = digits-1                  , //   7           Last bit (0 based)
         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
@@ -155,8 +156,8 @@
     //]
 
     //[large_bitset_bitset_filler
-    static word_type from_lower_to(word_type bit){return bit==top ? all : (1<<(bit+1))-1;}
-    static word_type to_upper_from(word_type bit){return bit==top ? top : ~((1<<bit)-1); }
+    static word_type from_lower_to(word_type bit){return bit==last ? all : (w1<<(bit+w1))-w1;}
+    static word_type to_upper_from(word_type bit){return bit==last ? top : ~((w1<<bit)-w1); }
     //]
 
     //[large_bitset_segment_apply
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-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -39,29 +39,276 @@
 using namespace boost::itl;
 
 
+BOOST_AUTO_TEST_CASE(reverse_iter)
+{
+    typedef interval_bitset<int, bits8> InterBitsT;
+    InterBitsT lbs;
+
+    lbs.add(0).add(3).add(5);
+
+	InterBitsT::element_reverse_iterator rit_   = lbs.elements_rend();
+	InterBitsT::element_reverse_iterator revbeg = lbs.elements_rbegin();
+
+	cout << "{";
+	while(!(rit_ == revbeg))
+	{
+		--rit_;
+		cout << *rit_ << " ";
+	}
+	cout << "}";
+}
 
-BOOST_AUTO_TEST_CASE(casual_test)
+
+/*
+BOOST_AUTO_TEST_CASE(bitter16_forward)
 {
-    typedef interval_bitset<nat, bits8> InterBits8T;
-    InterBits8T lbs;
+    typedef interval_bitset<int, bits16> InterBitsT;
+    InterBitsT lbs;
 
-    lbs.add(1).add(4).add(7).add(8);
+    lbs
+	   .add(-50).add(-62).add(-63).add(-64).add(-65)
+	   .add(-17).add(-20).add(-31).add(-32).add(-33)
+	   .add(-1).add(-2).add(-4).add(-7).add(-8).add(-9).add(-15).add(-16)
+	   .add(0)
+	   .add(1).add(2).add(4).add(7).add(8).add(9).add(15).add(16)
+	   .add(17).add(20).add(31).add(32).add(33)
+	   .add(50).add(62).add(63).add(64).add(65)
+	   ;
     
-    InterBits8T::element_iterator it = lbs.elements_begin();
+	lbs.show_segments();
+	cout << lbs << endl;
+
+    InterBitsT::element_iterator it = lbs.elements_begin();
+	int ele;
     cout << "{";
     while(it != lbs.elements_end())
     {
-        int ele = *it;
+        ele = *it;
+        cout << *it << " ";
+        if(ele == 65)
+        {
+            int dbg = 0;
+        }
+        ++it;
+    }
+    cout << "}";
+}
+
+
+BOOST_AUTO_TEST_CASE(itv_set_reverted_backwards)
+{
+    typedef interval_set<int> InterSetT;
+	InterSetT itv_set;
+
+	itv_set;
+	InterSetT::element_reverse_iterator rit;
+	rit = itv_set.elements_rend();
+	while(rit != itv_set.elements_rbegin())
+	{
+		cout << *rit << endl;
+		--rit;
+	}
+
+	itv_set.add(0).add(1).add(3);
+
+	rit = itv_set.elements_rend();
+
+	if(rit != itv_set.elements_rbegin())
+		--rit;
+
+	cout << "{";
+	while(rit != itv_set.elements_rbegin())
+	{
+		cout << *rit << " ";
+		--rit;
+	}
+
+	BOOST_ASSERT(rit == itv_set.elements_rbegin());
+	cout << *rit << "}\n";
+}
+
+
+BOOST_AUTO_TEST_CASE(itv_set_backwards)
+{
+    typedef interval_set<int> InterSetT;
+	InterSetT itv_set;
+
+	itv_set;
+	InterSetT::element_iterator rit;
+	rit = itv_set.elements_end();
+	while(rit != itv_set.elements_begin())
+	{
+		cout << *rit << endl;
+		--rit;
+	}
+
+	itv_set.add(0).add(1).add(3);
+
+	rit = itv_set.elements_end();
+
+	if(rit != itv_set.elements_begin())
+		--rit;
+
+	cout << "{";
+	while(rit != itv_set.elements_begin())
+	{
+		cout << *rit << " ";
+		--rit;
+	}
+
+	BOOST_ASSERT(rit == itv_set.elements_begin());
+	cout << *rit << "}\n";
+}
+
+
+
+BOOST_AUTO_TEST_CASE(bitter64_reverted_backwards)
+{
+    typedef interval_bitset<int, bits64> InterBitsT;
+    InterBitsT lbs;
+
+    lbs
+	   .add(-50).add(-62).add(-63).add(-64).add(-65)
+	   .add(-17).add(-20).add(-31).add(-32).add(-33)
+	   .add(-1).add(-2).add(-4).add(-7).add(-8).add(-9).add(-15).add(-16)
+	   .add(0)
+	   .add(1).add(2).add(4).add(7).add(8).add(9).add(15).add(16)
+	   .add(17).add(20).add(31).add(32).add(33)
+	   .add(50).add(62).add(63).add(64).add(65)
+	   ;
+    
+	lbs.show_segments();
+	cout << lbs << endl;
+
+    InterBitsT::element_reverse_iterator it = lbs.elements_rend();
+	InterBitsT::element_reverse_iterator rbeg_eq_at_64 = lbs.elements_rbegin();
+	int ele;
+	--it;
+    cout << "{";
+    while(it != lbs.elements_rbegin())
+    {
+        ele = *it;
+        cout << *it << " ";
+        if(ele == 64)
+        {
+            int dbg = 0;
+        }
+        --it;
+    }
+    ele = *it;
+    cout << *it << " ";
+    cout << "}";
+}
+
+
+BOOST_AUTO_TEST_CASE(bitter64_reverted)
+{
+    typedef interval_bitset<int, bits64> InterBitsT;
+    InterBitsT lbs;
+
+    lbs
+	   .add(-50).add(-62).add(-63).add(-64).add(-65)
+	   .add(-17).add(-20).add(-31).add(-32).add(-33)
+	   .add(-1).add(-2).add(-4).add(-7).add(-8).add(-9).add(-15).add(-16)
+	   .add(0)
+	   .add(1).add(2).add(4).add(7).add(8).add(9).add(15).add(16)
+	   .add(17).add(20).add(31).add(32).add(33)
+	   .add(50).add(62).add(63).add(64).add(65)
+	   ;
+    
+	lbs.show_segments();
+	cout << lbs << endl;
+
+    InterBitsT::element_reverse_iterator it = lbs.elements_rbegin();
+	int ele;
+    cout << "{";
+    while(it != lbs.elements_rend())
+    {
+        ele = *it;
         cout << *it << " ";
-        if(ele == 8)
+        if(ele == -65)
         {
-            int dbg = 1;
+            int dbg = 0;
         }
         ++it;
     }
     cout << "}";
 }
+*/
+
+/*---------------- bggy case
+BOOST_AUTO_TEST_CASE(bitter64_backwards)
+{
+    typedef interval_bitset<int, bits64> InterBitsT;
+    InterBitsT lbs;
+
+    lbs
+	   .add(-50).add(-62).add(-63).add(-64).add(-65)
+	   .add(-17).add(-20).add(-31).add(-32).add(-33)
+	   .add(-1).add(-2).add(-4).add(-7).add(-8).add(-9).add(-15).add(-16)
+	   .add(0)
+	   .add(1).add(2).add(4).add(7).add(8).add(9).add(15).add(16)
+	   .add(17).add(20).add(31).add(32).add(33)
+	   .add(50).add(62).add(63).add(64).add(65)
+	   ;
+    
+	lbs.show_segments();
+	cout << lbs << endl;
+
+    InterBitsT::element_iterator it = lbs.elements_end();
+	int ele;
+	--it;
+    cout << "{";
+    while(it != lbs.elements_begin())
+    {
+        ele = *it;
+        cout << *it << " ";
+        if(ele == -65)
+        {
+            int dbg = 0;
+        }
+        --it;
+    }
+    ele = *it;
+    cout << *it << " ";
+    cout << "}";
+}
+*/
+
+/*
+BOOST_AUTO_TEST_CASE(bitter64_forward)
+{
+    typedef interval_bitset<int, bits64> InterBitsT;
+    InterBitsT lbs;
+
+    lbs
+	   .add(-50).add(-62).add(-63).add(-64).add(-65)
+	   .add(-17).add(-20).add(-31).add(-32).add(-33)
+	   .add(-1).add(-2).add(-4).add(-7).add(-8).add(-9).add(-15).add(-16)
+	   .add(0)
+	   .add(1).add(2).add(4).add(7).add(8).add(9).add(15).add(16)
+	   .add(17).add(20).add(31).add(32).add(33)
+	   .add(50).add(62).add(63).add(64).add(65)
+	   ;
+    
+	lbs.show_segments();
+	cout << lbs << endl;
 
+    InterBitsT::element_iterator it = lbs.elements_begin();
+	int ele;
+    cout << "{";
+    while(it != lbs.elements_end())
+    {
+        ele = *it;
+        cout << *it << " ";
+        if(ele == 65)
+        {
+            int dbg = 0;
+        }
+        ++it;
+    }
+    cout << "}";
+}
 
 /*
 BOOST_AUTO_TEST_CASE(biter64_test)
Modified: sandbox/itl/libs/itl/test/test_type_lists.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_type_lists.hpp	(original)
+++ sandbox/itl/libs/itl/test/test_type_lists.hpp	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -11,7 +11,7 @@
 #include <boost/mpl/list.hpp>
 
 // interval instance types
-#include <boost/itl/gregorian.hpp> 
+// #include <boost/itl/gregorian.hpp> 
 #include <boost/itl/ptime.hpp> 
 #include <boost/itl/rational.hpp> 
 
Modified: sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj
==============================================================================
--- sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj	(original)
+++ sandbox/itl/libs/validate/example/labat_itv_bitset_/vc9_labat_itv_bitset.vcproj	2009-11-30 05:44:09 EST (Mon, 30 Nov 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/example/labat_polygon_/labat_polygon.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_polygon_/labat_polygon.cpp	(original)
+++ sandbox/itl/libs/validate/example/labat_polygon_/labat_polygon.cpp	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -101,17 +101,17 @@
     typedef itl::list<point<int> > PolygonT;
     typedef itl::list<PolygonT>    PolygonSetT;
 
-    point_gentor<int> pointgen;
-    pointgen.setRange(interval<int>::rightopen(-99, 100));
+    point_gentor<int>* pointgen = new point_gentor<int>;
+    pointgen->setRange(interval<int>::rightopen(-99, 100));
 
     PolygonT some_poly;
-    polygon_gentor<PolygonT> polygen;
-    polygen.setDomainGentor(&pointgen);
-    polygen.setRangeOfSampleSize(interval<int>::rightopen(1, 5));
+    polygon_gentor<PolygonT>* polygen = new polygon_gentor<PolygonT>;
+    polygen->setDomainGentor(pointgen);
+    polygen->setRangeOfSampleSize(interval<int>::rightopen(1, 5));
 
     PolygonSetT some_polyset;
     polygon_set_gentor<PolygonSetT> polysetgen;
-    polysetgen.setDomainGentor(&polygen);
+    polysetgen.setDomainGentor(polygen);
     polysetgen.setRangeOfSampleSize(interval<int>::rightopen(1, 3));
 
     for(int idx=0; idx<10; idx++)
@@ -152,7 +152,10 @@
     // Size of polygon sets is in [0 .. |poly|]
     // Coordinates in [min .. max)
     //                                         |set|,|poly|, min, max 
-    GentorProfileSgl::it()->set_polygon_profile(1,    3,     0,   10);
+    //GentorProfileSgl::it()->set_polygon_profile(1,    3,     0,   10);
+    //int test_count = 10000;
+    //                                         |set|,|poly|, min, max 
+    GentorProfileSgl::it()->set_polygon_profile(2,    9,     0,   100);
     int test_count = 10000;
 
     ptime start, stop;
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-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -22,6 +22,7 @@
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/laws/minor_set_laws.hpp>
 #include <boost/validate/laws/function_equality.hpp>
+#include <boost/validate/laws/atomic_equivalence.hpp>
 
 //#include <boost/validate/laws/novial_tree.hpp>
 #include <boost/validate/laws/inversion_laws.hpp>
@@ -31,6 +32,7 @@
 #include <boost/itl/interval_set.hpp>
 #include <boost/itl/interval_map.hpp>
 #include <boost/itl/functors.hpp>
+#include <boost/itl_xt/interval_bitset.hpp>
 
 using namespace std;
 using namespace Loki;
@@ -98,22 +100,40 @@
     //    <interval_set<int>, itl::interval<int> >  TestLawT;
     //LawValidater<TestLawT, RandomGentor> test_law;
 
-    typedef FunctionEquality
+    //typedef FunctionEquality
+    //<
+    //    itl::list<std::pair<int,int> >, 
+    //    itl::map<int,int,partial_absorber>,
+    //    base_insertion, 
+    //    hint_insertion
+    //> TestLawT;
+
+	//typedef UnaryAtomicEquivalence
+	//<
+	//	itl::interval_bitset<int,itl::bits16>,
+	//	itl::list<int>,
+	//	itl::std_reverse_copy_forward
+	//> TestLawT;
+
+    typedef BinaryAtomicEquivalence
     <
-        itl::list<std::pair<int,int> >, 
-        itl::map<int,int,partial_absorber>,
-        base_insertion, 
-        hint_insertion
+		itl::interval_bitset<int,itl::bits16>,
+		itl::list<int>,
+		itl::std_includes_forward
     > TestLawT;
+
+
     LawValidater<TestLawT, RandomGentor> test_law;
 
     //-----------------------------------------------------------------------------
-    int test_count = 10000;
+    int test_count = 1000;
     ptime start, stop;
 
-    GentorProfileSgl::it()->set_std_profile(4,1);
+    GentorProfileSgl::it()->set_std_profile(32,1);
     test_law.set_trials_count(test_count);
 
+	TestLawT law;
+	cout << law.typeString() << endl;
     std::cout << "Start\n";
     start = ptime(microsec_clock::local_time());
     test_law.run();
Added: sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/labat_sorted_associative_bitset.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/labat_sorted_associative_bitset.cpp	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+    
+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/sorted_associative_bitset_driver.hpp>
+
+using namespace std;
+using namespace Loki;
+using namespace boost;
+using namespace boost::itl;
+
+void test_sorted_associative_bitset_driver()
+{
+    sorted_associative_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(64,1);
+    GentorProfileSgl::it()->report_profile();
+    validater.validate();
+};
+
+
+int main()
+{
+    test_sorted_associative_bitset_driver();
+    return 0;
+}
Added: sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/vc9_labat_sorted_associative_bitset.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_sorted_associative_bitset_/vc9_labat_sorted_associative_bitset.vcproj	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_labat_sorted_associative_bitset"
+	ProjectGUID="{BF42574F-66E2-42DD-90D9-3A8FCE6F4764}"
+	RootNamespace="vc9_labat_sorted_associative_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_sorted_associative_bitset_\labat_sorted_associative_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\validater\sorted_associative_validater.hpp"
+				>
+			</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>
Added: sandbox/itl/libs/validate/example/labat_sorted_associative_map_/labat_sorted_associative_map.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_sorted_associative_map_/labat_sorted_associative_map.cpp	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+    
+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/sorted_associative_map_driver.hpp>
+
+using namespace std;
+using namespace Loki;
+using namespace boost;
+using namespace boost::itl;
+
+void test_sorted_associative_map_driver()
+{
+    sorted_associative_map_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(16,1);
+    GentorProfileSgl::it()->report_profile();
+    validater.validate();
+};
+
+
+int main()
+{
+    test_sorted_associative_map_driver();
+    return 0;
+}
Added: sandbox/itl/libs/validate/example/labat_sorted_associative_map_/vc9_labat_sorted_associative_map.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_sorted_associative_map_/vc9_labat_sorted_associative_map.vcproj	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_labat_sorted_associative_map"
+	ProjectGUID="{BF42574F-66E2-42DD-90D9-3A8FCE6F4762}"
+	RootNamespace="vc9_labat_sorted_associative_map"
+	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_sorted_associative_map_\labat_sorted_associative_map.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\laws\set_laws.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\typevalidater.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\boost\validate\sorted_associative_map_validater.hpp"
+				>
+			</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>
Added: sandbox/itl/libs/validate/example/labat_sorted_associative_set_/labat_sorted_associative_set.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_sorted_associative_set_/labat_sorted_associative_set.cpp	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+    
+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/sorted_associative_set_driver.hpp>
+
+using namespace std;
+using namespace Loki;
+using namespace boost;
+using namespace boost::itl;
+
+void test_sorted_associative_set_driver()
+{
+    sorted_associative_set_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(64,1);
+    GentorProfileSgl::it()->report_profile();
+    validater.validate();
+};
+
+
+int main()
+{
+    test_sorted_associative_set_driver();
+    return 0;
+}
Added: sandbox/itl/libs/validate/example/labat_sorted_associative_set_/vc9_labat_sorted_associative_set.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/validate/example/labat_sorted_associative_set_/vc9_labat_sorted_associative_set.vcproj	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="vc9_labat_sorted_associative_set"
+	ProjectGUID="{BF42574F-66E2-42DD-90D9-3A8FCE6F4763}"
+	RootNamespace="vc9_labat_sorted_associative_set"
+	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_sorted_associative_set_\labat_sorted_associative_set.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/example/vc9_validate_examples.sln
==============================================================================
--- sandbox/itl/libs/validate/example/vc9_validate_examples.sln	(original)
+++ sandbox/itl/libs/validate/example/vc9_validate_examples.sln	2009-11-30 05:44:09 EST (Mon, 30 Nov 2009)
@@ -9,6 +9,14 @@
 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
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_single", "labat_single_\vc9_labat_single.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F471C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_sorted_associative_map", "labat_sorted_associative_map_\vc9_labat_sorted_associative_map.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4762}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_sorted_associative_set", "labat_sorted_associative_set_\vc9_labat_sorted_associative_set.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4763}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_sorted_associative_bitset", "labat_sorted_associative_bitset_\vc9_labat_sorted_associative_bitset.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4764}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -31,6 +39,22 @@
                 {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
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4762}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4762}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4762}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4762}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4763}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4763}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4763}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4763}.Release|Win32.Build.0 = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4764}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4764}.Debug|Win32.Build.0 = Debug|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4764}.Release|Win32.ActiveCfg = Release|Win32
+		{BF42574F-66E2-42DD-90D9-3A8FCE6F4764}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE