$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r61673 - in sandbox/itl: boost/validate/driver boost/validate/laws boost/validate/validater libs/itl/test/test_casual_ libs/validate/doc/boostcon2010 libs/validate/example/de_morgan_ libs/validate/example/labat_sorted_assoc_set_back_
From: afojgo_at_[hidden]
Date: 2010-04-29 08:16:33
Author: jofaber
Date: 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
New Revision: 61673
URL: http://svn.boost.org/trac/boost/changeset/61673
Log:
A few modifications in Validate for BoostCon. Added slides and pictures to the presentation.
Added:
   sandbox/itl/boost/validate/validater/concept_validater.hpp   (contents, props changed)
   sandbox/itl/libs/validate/doc/boostcon2010/Prussian_Fusiliers.jpg   (contents, props changed)
Binary files modified: 
   sandbox/itl/libs/validate/doc/boostcon2010/BoostAlabaster.pptx
Text files modified: 
   sandbox/itl/boost/validate/driver/bit_collector_driver.hpp                                     |     2                                         
   sandbox/itl/boost/validate/driver/collector_driver.hpp                                         |     2                                         
   sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp                                   |     2                                         
   sandbox/itl/boost/validate/driver/itl_driver.hpp                                               |     8 +++---                                  
   sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp                                       |     2                                         
   sandbox/itl/boost/validate/driver/itl_relations_driver.hpp                                     |     2                                         
   sandbox/itl/boost/validate/driver/itl_set_driver.hpp                                           |    53 ++++++--------------------------------- 
   sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp                                    |     2                                         
   sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp                               |     2                                         
   sandbox/itl/boost/validate/driver/map_order_driver.hpp                                         |     2                                         
   sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp                               |     2                                         
   sandbox/itl/boost/validate/driver/set_order_driver.hpp                                         |     2                                         
   sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp                                 |     2                                         
   sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp                    |     2                                         
   sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp                         |     2                                         
   sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp                       |     2                                         
   sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp                            |     2                                         
   sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp                       |     2                                         
   sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp                            |     2                                         
   sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp                               |     2                                         
   sandbox/itl/boost/validate/laws/law.hpp                                                        |    10 +++++++                                 
   sandbox/itl/boost/validate/validater/bit_collector_validater.hpp                               |     4 +-                                      
   sandbox/itl/boost/validate/validater/collector_validater.hpp                                   |     4 +-                                      
   sandbox/itl/boost/validate/validater/function_equality_validater.hpp                           |     4 +-                                      
   sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp                            |     4 +-                                      
   sandbox/itl/boost/validate/validater/itl_induced_relations.hpp                                 |     4 +-                                      
   sandbox/itl/boost/validate/validater/itl_order_validater.hpp                                   |     2                                         
   sandbox/itl/boost/validate/validater/itl_set_validater.hpp                                     |    12 ++++----                                
   sandbox/itl/boost/validate/validater/partial_order_validater.hpp                               |     4 +-                                      
   sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp                           |     4 +-                                      
   sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp                     |     4 +-                                      
   sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp                          |     4 +-                                      
   sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp                           |     6 ++--                                    
   sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp                         |     4 +-                                      
   sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp                                         |    27 ++++++++++++++++++++                    
   sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp                                     |    17 +++++++-----                            
   sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp |     9 ++++++                                  
   37 files changed, 115 insertions(+), 105 deletions(-)
Modified: sandbox/itl/boost/validate/driver/bit_collector_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/bit_collector_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/bit_collector_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int neutronizerChoice  = _neutronizerChoice.some();
Modified: sandbox/itl/boost/validate/driver/collector_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/collector_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/collector_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -47,7 +47,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int freeChoice         = _freeChoice.some();
 
Modified: sandbox/itl/boost/validate/driver/itl_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <stdio.h>
 #include <time.h>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 #include <boost/validate/utility.hpp>
 
 
@@ -75,7 +75,7 @@
         bool hasValidProfile()const { return _isValid; }
 
         virtual void setProfile() = 0;
-        virtual algebra_validater* chooseValidater() = 0;
+        virtual concept_validater* chooseValidater() = 0;
 
         void require_validation_count(int count){ _required_law_validation_count = count; }
         int  required_validation_count()const   { return _required_law_validation_count;  }
@@ -250,7 +250,7 @@
             _codomainChoice.setTypeNames(type_names);
         }
 
-        algebra_validater* choiceError(const std::string& location, int value, const ChoiceT& choice)
+        concept_validater* choiceError(const std::string& location, int value, const ChoiceT& choice)
         {
             reportTypeChoiceError(location, value, choice); 
             setValid(false);
@@ -279,7 +279,7 @@
         ChoiceT            _freeChoice;
 
     private:
-        algebra_validater* _validater;
+        concept_validater* _validater;
         ValidationCounterT _frequencies;
         ViolationCounterT  _violationsCount;
         ViolationMapT      _violations;
Modified: sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -88,7 +88,7 @@
 
     }
 
-    algebra_validater* chooseValidater()
+    concept_validater* chooseValidater()
     {
         int rootChoice         = _rootChoice.some();
         int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/itl_relations_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_relations_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_relations_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/itl_set_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_set_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_set_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -1,7 +1,7 @@
 /*-----------------------------------------------------------------------------+    
 A Law Based Test Automaton 'LaBatea'
 Author: Joachim Faulhaber
-Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
 +------------------------------------------------------------------------------+
    Distributed under the Boost Software License, Version 1.0.
       (See accompanying file LICENCE.txt or copy at
@@ -34,9 +34,6 @@
             _rootChoice[RootType::interval_set]          = 25;
             _rootChoice[RootType::separate_interval_set] = 25;
             _rootChoice[RootType::split_interval_set]    = 25;
-            _rootChoice[RootType::itl_map]               = 0;
-            _rootChoice[RootType::interval_map]          = 0;
-            _rootChoice[RootType::split_interval_map]    = 0;
             setRootTypeNames();
             _rootChoice.init();
 
@@ -47,23 +44,6 @@
             setDomainTypeNames();
             _domainChoice.init();
 
-            _codomainChoice.setSize(CodomainType::CodomainTypes_size);
-            _codomainChoice.setMaxWeights(100);
-            _codomainChoice[CodomainType::Int]           = 100;
-            _codomainChoice[CodomainType::Double]        = 0;
-            _codomainChoice[CodomainType::set_int]       = 0;
-            setCodomainTypeNames();
-            _codomainChoice.init();
-
-            _neutronizerChoice.setSize(NeutronHandlerType::NeutronHandlerTypes_size);
-            _neutronizerChoice.setMaxWeights(100);
-            _neutronizerChoice[NeutronHandlerType::partial_absorber] = 100;
-            _neutronizerChoice[NeutronHandlerType::partial_enricher] = 0;
-            _neutronizerChoice[NeutronHandlerType::total_absorber]   = 0;
-            _neutronizerChoice[NeutronHandlerType::total_enricher]   = 0;
-            setNeutronHandlerTypeNames();
-            _neutronizerChoice.init();
-
             if(!_rootChoice.is_consistent())
             {
                 setValid(false);
@@ -76,30 +56,13 @@
                 std::cout << _domainChoice.inconsitencyMessage("itl_set_driver::setProfile()") << std::endl;
             }
 
-            if(!_codomainChoice.is_consistent())
-            {
-                setValid(false);
-                std::cout << _codomainChoice.inconsitencyMessage("itl_set_driver::setProfile()") << std::endl;
-            }
-
-            if(!_neutronizerChoice.is_consistent())
-            {
-                setValid(false);
-                std::cout << _neutronizerChoice.inconsitencyMessage("itl_set_driver::setProfile()") << std::endl;
-            }
-
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
-            typedef int    intT;
-            typedef double doubleT;
-
             int rootChoice         = _rootChoice.some();
             int domainChoice       = _domainChoice.some();
-            //int codomainChoice     = _codomainChoice.some();
-            //int neutronizerChoice  = _neutronizerChoice.some();
 
             switch(rootChoice)
             {
@@ -113,24 +76,24 @@
                 }
             case RootType::interval_set: {
                     switch(domainChoice) {
-                    case DomainType::Int:    return new itl_set_validater<interval_set<intT> >;
-                    case DomainType::Double: return new itl_set_validater<interval_set<doubleT> >;
+                    case DomainType::Int:    return new itl_set_validater<interval_set<int> >;
+                    case DomainType::Double: return new itl_set_validater<interval_set<double> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::interval_set: domainChoice:\n"), 
                                                 domainChoice, _domainChoice);
                     }
                 }
             case RootType::separate_interval_set: {
                     switch(domainChoice) {
-                    case DomainType::Int:    return new itl_set_validater<separate_interval_set<intT> >;
-                    case DomainType::Double: return new itl_set_validater<separate_interval_set<doubleT> >;
+                    case DomainType::Int:    return new itl_set_validater<separate_interval_set<int> >;
+                    case DomainType::Double: return new itl_set_validater<separate_interval_set<double> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::separate_interval_set: domainChoice:\n"), 
                                                 domainChoice, _domainChoice);
                     }
                  }
             case RootType::split_interval_set: {
                     switch(domainChoice) {
-                    case DomainType::Int:    return new itl_set_validater<split_interval_set<intT> >;
-                    case DomainType::Double: return new itl_set_validater<split_interval_set<doubleT> >;
+                    case DomainType::Int:    return new itl_set_validater<split_interval_set<int> >;
+                    case DomainType::Double: return new itl_set_validater<split_interval_set<double> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::split_interval_set: domainChoice:\n"), 
                                                 domainChoice, _domainChoice);
                     }
Modified: sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -94,7 +94,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
 
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int neutronizerChoice  = _neutronizerChoice.some();
Modified: sandbox/itl/boost/validate/driver/map_order_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/map_order_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/map_order_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -89,7 +89,7 @@
 
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
 
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int neutronizerChoice  = _neutronizerChoice.some();
Modified: sandbox/itl/boost/validate/driver/set_order_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/set_order_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/set_order_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -89,7 +89,7 @@
 
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -44,7 +44,7 @@
             }
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int freeChoice         = _freeChoice.some();
 
Modified: sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -44,7 +44,7 @@
             }
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int freeChoice         = _freeChoice.some();
 
Modified: sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -90,7 +90,7 @@
 
         }
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp	(original)
+++ sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
-        algebra_validater* chooseValidater()
+        concept_validater* chooseValidater()
         {
             int rootChoice         = _rootChoice.some();
             //int domainChoice       = _domainChoice.some();
Modified: sandbox/itl/boost/validate/laws/law.hpp
==============================================================================
--- sandbox/itl/boost/validate/laws/law.hpp	(original)
+++ sandbox/itl/boost/validate/laws/law.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -14,6 +14,12 @@
 #include <set>
 #include <boost/validate/loki_xt/Tuple.h>
 
+
+#ifdef BOOST_MSVC 
+#pragma warning(push)
+#pragma warning(disable:4717) // ::size' : recursive on all control paths, function will cause runtime stack overflow
+#endif                        
+
 namespace boost{namespace itl
 {
 
@@ -126,5 +132,9 @@
 
 }} // namespace itl boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif //BOOST_ITL_LAW_HPP_JOFA_070411
 
Modified: sandbox/itl/boost/validate/validater/bit_collector_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/bit_collector_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/bit_collector_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,7 +16,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
@@ -24,7 +24,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class collector_validater : public algebra_validater
+class collector_validater : public concept_validater
 {
 public:
 
Modified: sandbox/itl/boost/validate/validater/collector_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/collector_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/collector_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -17,7 +17,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC 
 #pragma warning(push)
@@ -30,7 +30,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class collector_validater : public algebra_validater
+class collector_validater : public concept_validater
 {
 public:
 
Added: sandbox/itl/boost/validate/validater/concept_validater.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/validate/validater/concept_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -0,0 +1,47 @@
+/*-----------------------------------------------------------------------------+    
+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)
++-----------------------------------------------------------------------------*/
+#pragma once
+
+#include <boost/itl/type_traits/is_continuous.hpp>
+#include <boost/itl/functors.hpp>
+#include <boost/validate/validater/law_validater.hpp>
+
+namespace boost{namespace itl
+{
+    typedef WeightedNumberGentor<int> ChoiceT;
+
+    class concept_validater
+    {
+    public:
+        virtual ~concept_validater(){}
+        // the choice probability, and also the availability of laws is individual to each type
+        // Somehow it has to be defined in conjunction to every type. So it is an aspect of
+        // type traits.
+        virtual void setProfile()=0;
+        virtual void validate()=0;
+        virtual void addFrequencies(ValidationCounterT&)=0;
+        virtual void addViolations(ViolationCounterT&, ViolationMapT&)=0;
+
+        virtual bool hasValidProfile()const{ return true; }
+
+        static int share(int total, int& index, int& rest_shares);
+    };
+
+    inline int concept_validater::share(int total, int& index, int& rest_shares)
+    {
+        int count = total - index;
+        int share = rest_shares / count;
+        rest_shares -= share;
+        ++index;
+        return share;
+    }
+
+}} // namespace itl boost
+
Modified: sandbox/itl/boost/validate/validater/function_equality_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/function_equality_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/function_equality_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -12,7 +12,7 @@
 #include <boost/validate/itl/functors.hpp>
 #include <boost/validate/laws/function_equality.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
@@ -20,7 +20,7 @@
 
 
     template <typename SourceT, typename TargetT>
-    class function_equality_validater : public algebra_validater
+    class function_equality_validater : public concept_validater
     {
     public:
         enum Laws 
Modified: sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -19,14 +19,14 @@
 #include <boost/validate/laws/order.hpp>
 #include <boost/validate/laws/pushouts.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
     typedef WeightedNumberGentor<int> ChoiceT;
 
     template <typename Type>
-    class interval_morphic_validater : public algebra_validater
+    class interval_morphic_validater : public concept_validater
     {
     public:
         enum Laws 
Modified: sandbox/itl/boost/validate/validater/itl_induced_relations.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/itl_induced_relations.hpp	(original)
+++ sandbox/itl/boost/validate/validater/itl_induced_relations.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -13,7 +13,7 @@
 #include <boost/itl/detail/interval_morphism.hpp>
 #include <boost/validate/laws/induced_relation.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
@@ -21,7 +21,7 @@
 
 
     template <typename Type>
-    class itl_induced_relations_validater : public algebra_validater
+    class itl_induced_relations_validater : public concept_validater
     {
     public:
         enum Laws 
Modified: sandbox/itl/boost/validate/validater/itl_order_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/itl_order_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/itl_order_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -23,7 +23,7 @@
 
 
     template <typename Type>
-    class itl_order_validater : public algebra_validater
+    class itl_order_validater : public concept_validater
     {
     public:
         typedef strict_weak_order_validater<Type, std::less> LessValidaterT;
Modified: sandbox/itl/boost/validate/validater/itl_set_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/itl_set_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/itl_set_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,7 +16,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC 
 #pragma warning(push)
@@ -29,7 +29,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class itl_set_validater : public algebra_validater
+class itl_set_validater : public concept_validater
 {
 public:
 
@@ -101,12 +101,12 @@
             if(itl::is_interval_splitter<Type>::value)
                                         return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, element_equal> >;
             else                        return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, std_equal> >;
-        case inplaceEtDashRightDistrib:    return new LawValidater<InplaceRightDistributivity<Type, inplace_et, inplace_minus> >;
-        case inplacePlusDeMorgan:         return new LawValidater<InplaceDeMorgan<Type, inplace_plus, inplace_et, itl::std_equal> >;
+        case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_et, inplace_minus> >;
+        case inplacePlusDeMorgan:       return new LawValidater<InplaceDeMorgan<Type, inplace_plus, inplace_et, itl::std_equal> >;
         case inplaceEtDeMorgan:        
             if(itl::is_interval_splitter<Type>::value || itl::is_interval_separator<Type>::value)
-                                        return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, itl::element_equal> >;
-            else                        return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, itl::std_equal> >;
+				                        return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, inplace_minus, itl::element_equal> >;
+            else                        return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, inplace_minus, itl::std_equal> >;
 
         default: return NULL;
         }
Modified: sandbox/itl/boost/validate/validater/partial_order_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/partial_order_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/partial_order_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,14 +16,14 @@
 #include <boost/itl/functors.hpp>
 #include <boost/validate/laws/order.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
     typedef WeightedNumberGentor<int> ChoiceT;
 
     template <typename Type, template<class>class Relation, template<class>class Equality = itl::std_equal>
-    class partial_order_validater : public algebra_validater
+    class partial_order_validater : public concept_validater
     {
     public:
         enum Laws 
Modified: sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -19,7 +19,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/map_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC 
 #pragma warning(push)
@@ -32,7 +32,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class signed_quantifier_validater : public algebra_validater
+class signed_quantifier_validater : public concept_validater
 {
 public:
 
Modified: sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -12,7 +12,7 @@
 
 #include <boost/validate/laws/atomic_equivalence.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #include <boost/validate/std/algorithm/copy.hpp>
 #include <boost/validate/std/algorithm/set_algo.hpp>
@@ -25,7 +25,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type, typename TargetT = itl::list<typename Type::value_type> >
-class sorted_associative_back_validater : public algebra_validater
+class sorted_associative_back_validater : public concept_validater
 {
 public:
     typedef typename Type::atomized_type     atomic_type;
Modified: sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -13,7 +13,7 @@
 #include <boost/mpl/if.hpp>
 #include <boost/validate/laws/atomic_equivalence.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #include <boost/validate/std/algorithm/copy.hpp>
 #include <boost/validate/std/algorithm/set_algo.hpp>
@@ -27,7 +27,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type, typename TargetT = itl::list<typename Type::value_type> >
-class sorted_associative_validater : public algebra_validater
+class sorted_associative_validater : public concept_validater
 {
 public:
     typedef typename Type::atomized_type     atomic_type;
Modified: sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,14 +16,14 @@
 #include <boost/itl/functors.hpp>
 #include <boost/validate/laws/order.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
     typedef WeightedNumberGentor<int> ChoiceT;
 
     template <typename Type, template<class>class Relation>
-    class strict_weak_order_validater : public algebra_validater
+    class strict_weak_order_validater : public concept_validater
     {
     public:
         enum Laws 
@@ -84,7 +84,7 @@
         ValidationCounterT _frequencies;
         ViolationCounterT  _violationsCount;
         ViolationMapT      _violations;
-    }; //class algebra_validater
+    }; //class concept_validater
 
 
 
Modified: sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp	(original)
+++ sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -17,7 +17,7 @@
 #include <boost/validate/laws/map_laws.hpp>
 #include <boost/validate/laws/inversion_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC 
 #pragma warning(push)
@@ -30,7 +30,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class unsigned_quantifier_validater : public algebra_validater
+class unsigned_quantifier_validater : public concept_validater
 {
 public:
 
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-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -192,5 +192,32 @@
 
 BOOST_AUTO_TEST_CASE(casual)
 {
+	typedef itl::set<int> TargetT;
+	TargetT left, right, target;
+	left.insert(1);
+	left.insert(3);
+	right.insert(2);
+	left.insert(3);
+
+	/*
+	std::set_union(left.rbegin(), left.rend(), right.rbegin(), right.rend(), 
+		           std::inserter(target,target.end()));
+   	std::set_difference(left.rbegin(), left.rend(), right.rbegin(), right.rend(), 
+		                std::inserter(target,target.end()));
+
+	std::set_intersection(left.rbegin(), left.rend(), right.rbegin(), right.rend(), 
+		                  std::inserter(target,target.end()));
+	std::set_symmetric_difference(left.rbegin(), left.rend(), right.rbegin(), right.rend(), 
+		                          std::inserter(target,target.end()));
+
+	bool incl = std::includes(left.rbegin(), left.rend(), right.rbegin(), right.rend(), std::greater<int>()); //!
+
+    */
+
+	//int found;
+	//TargetT::reverse_iterator it = std::find(left.rbegin(), left.rend(), found); //!
+
+	bool incl = std::includes(left.rbegin(), left.rend(), right.rbegin(), right.rend(), std::greater<int>());
+
 }
 
Modified: sandbox/itl/libs/validate/doc/boostcon2010/BoostAlabaster.pptx
==============================================================================
Binary files. No diff available.
Added: sandbox/itl/libs/validate/doc/boostcon2010/Prussian_Fusiliers.jpg
==============================================================================
Binary file. No diff available.
Modified: sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp	(original)
+++ sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -185,15 +185,17 @@
     // Second operation : inplace_plus implements union
     // Equality relation: std_equal    implements segmental equality (default)
 
-    LawValidater<InplaceDeMorgan<interval_set<int>, inplace_et, inplace_plus >, 
-                 RandomGentor> validater1;
+    LawValidater
+		<InplaceDeMorgan<interval_set<int>, inplace_et, inplace_plus > > 
+		validater1;
     cout << "===== validater 1 ====================================\n";
     test_law(validater1);
     // Ok the law was successfully validated.
 
     // Next we check the same law for split_interval_sets
-    LawValidater<InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus >, 
-                 RandomGentor> validater2;
+    LawValidater
+		<InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus > >
+        validater2;
     cout << "\n===== validater 2 ====================================\n";
     test_law(validater2);
     // The law does not hold for split_interval_sets: There were violations.
@@ -205,9 +207,10 @@
 
 
     // Using element equality that abstracts from the segmentation ...
-    LawValidater<InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus, 
-                                 inplace_minus, element_equal>, 
-                 RandomGentor> validater3;
+    LawValidater
+		<InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus, 
+                         inplace_minus, element_equal> > 
+		validater3;
     cout << "\n===== validater 3 ====================================\n";
     test_law(validater3);
     // finally leads to an instantiation of the law that holds for
Modified: sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp	(original)
+++ sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp	2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -25,7 +25,14 @@
     ">> -------- Law based test automaton 'LaBatea' ---------- <<\n";
 
 #if(_MSC_VER >= 1400 && defined(_DEBUG) ) // 1500=MSVC-9.0 1400=MSVC-8.0; 1310=MSVC-7.1; 1300=MSVC-7.0; 
-    cout << msvc_stl_false_order_checking_for_reverse_iteration_message();
+    //JODO cout << msvc_stl_false_order_checking_for_reverse_iteration_message();
+    cout <<
+    ">> 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();
 #else
     cout <<
     ">> Output will be generated in a few seconds\n"