Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r61484 - in sandbox/itl: boost/itl boost/itl/detail boost/validate/laws boost/validate/loki_xt boost/validate/validater libs/itl/build/win32 libs/validate/doc libs/validate/doc/boostcon2010 libs/validate/example libs/validate/example/labat_single_
From: afojgo_at_[hidden]
Date: 2010-04-22 08:29:51


Author: jofaber
Date: 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
New Revision: 61484
URL: http://svn.boost.org/trac/boost/changeset/61484

Log:
Added presentation material about Boost.Alabaster. Some modifications for boost.validate.
Added:
   sandbox/itl/libs/validate/doc/
   sandbox/itl/libs/validate/doc/boostcon2010/
   sandbox/itl/libs/validate/doc/boostcon2010/377px-Prussian_Fusiliers.jpg (contents, props changed)
   sandbox/itl/libs/validate/doc/boostcon2010/Alabasterschale_Volterra_Italien.jpg (contents, props changed)
   sandbox/itl/libs/validate/doc/boostcon2010/BoostAlabaster.pptx (contents, props changed)
   sandbox/itl/libs/validate/doc/boostcon2010/Sisyphus_by_von_Stuck.jpg (contents, props changed)
   sandbox/itl/libs/validate/doc/boostcon2010/~$BoostAlabaster.pptx (contents, props changed)
Text files modified:
   sandbox/itl/boost/itl/continuous_interval.hpp | 9 +---
   sandbox/itl/boost/itl/detail/design_config.hpp | 37 ++++++++++++++++------
   sandbox/itl/boost/itl/discrete_interval.hpp | 12 +++----
   sandbox/itl/boost/itl/interval.hpp | 51 ++++++++++++++++++++++++++++++-
   sandbox/itl/boost/itl/interval_bounds.hpp | 34 +++++++++++++-------
   sandbox/itl/boost/itl/interval_functions.hpp | 2
   sandbox/itl/boost/validate/laws/monoid.hpp | 65 +++++++++------------------------------
   sandbox/itl/boost/validate/loki_xt/TypelistGentor.h | 14 ++++----
   sandbox/itl/boost/validate/validater/bit_collector_validater.hpp | 30 +++++++++---------
   sandbox/itl/boost/validate/validater/collector_validater.hpp | 30 +++++++++---------
   sandbox/itl/boost/validate/validater/itl_set_validater.hpp | 30 +++++++++---------
   sandbox/itl/boost/validate/validater/law_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/partial_order_validater.hpp | 6 +-
   sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp | 30 +++++++++---------
   sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp | 26 ++++++++--------
   sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp | 26 ++++++++--------
   sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp | 18 +++++-----
   sandbox/itl/libs/itl/build/win32/vc9_all.sln | 6 +++
   sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp | 7 +--
   sandbox/itl/libs/validate/example/vc9_validate_examples.sln | 6 +++
   20 files changed, 243 insertions(+), 200 deletions(-)

Modified: sandbox/itl/boost/itl/continuous_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/continuous_interval.hpp (original)
+++ sandbox/itl/boost/itl/continuous_interval.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -19,8 +19,6 @@
 namespace boost{namespace itl
 {
 
-typedef unsigned char bound_type; //JODO
-
 template <class DomainT,
           ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
 class continuous_interval : public base_interval<DomainT,Compare>
@@ -41,8 +39,7 @@
     {
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- //JODO URG BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
- //JODO we must assert this via appropriate defaults for template parameters
+ BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
     }
 
     //NOTE: Compiler generated copy constructor is used
@@ -53,7 +50,7 @@
     {
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- //JODO BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
+ BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
     }
 
     /** Interval from <tt>low</tt> to <tt>up</tt> with bounds <tt>bounds</tt> */
@@ -64,7 +61,7 @@
     {
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- //JODO BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
+ BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
     }
 
     domain_type lower()const { return _lwb; }

Modified: sandbox/itl/boost/itl/detail/design_config.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/design_config.hpp (original)
+++ sandbox/itl/boost/itl/detail/design_config.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -15,6 +15,8 @@
 #ifndef BOOST_ITL_DESIGN_CONFIG_HPP_JOFA_090214
 #define BOOST_ITL_DESIGN_CONFIG_HPP_JOFA_090214
 
+//#define ITL_NEW_INTERVAL_IMPL
+
 //------------------------------------------------------------------------------
 // Auxiliary macros for denoting template signatures.
 // Purpose:
@@ -24,10 +26,16 @@
 // (4) Being able to check template template parameter variants against
 // template type parameter variants.
 
-#define ITL_USE_COMPARE_TEMPLATE_TEMPLATE
-#define ITL_USE_COMBINE_TEMPLATE_TEMPLATE
-#define ITL_USE_SECTION_TEMPLATE_TEMPLATE
-#define ITL_USE_INTERVAL_TEMPLATE_TEMPLATE
+#ifdef ITL_NEW_INTERVAL_IMPL
+# define ITL_USE_COMPARE_TEMPLATE_TEMPLATE
+# define ITL_USE_COMBINE_TEMPLATE_TEMPLATE
+# define ITL_USE_SECTION_TEMPLATE_TEMPLATE
+#else
+# define ITL_USE_COMPARE_TEMPLATE_TEMPLATE
+# define ITL_USE_COMBINE_TEMPLATE_TEMPLATE
+# define ITL_USE_SECTION_TEMPLATE_TEMPLATE
+# define ITL_USE_INTERVAL_TEMPLATE_TEMPLATE
+#endif
 
 //#define ITL_USE_COMPARE_TEMPLATE_TYPE
 //#define ITL_USE_COMBINE_TEMPLATE_TYPE
@@ -82,7 +90,7 @@
 # define ITL_INTERVAL2(itl_compare) template<class DomT2,itl_compare>class
 # define ITL_INTERVAL_TYPE(itl_interval, domain_type, itl_compare) itl_interval<domain_type,itl_compare>
 # define ITL_INTERVAL_INSTANCE(interval_instance,domain_type,itl_compare) interval_instance
-#else//ITL_USE_SECTION_TEMPLATE_TYPE
+#else//ITL_USE_INTERVAL_TEMPLATE_TYPE
 # define ITL_INTERVAL(itl_compare) class
 # define ITL_INTERVAL2(itl_compare) class
 # define ITL_INTERVAL_TYPE(itl_interval, domain_type, itl_compare) itl_interval
@@ -91,17 +99,24 @@
 
 
 //------------------------------------------------------------------------------
-#define ITL_INTERVAL_DEFAULT boost::itl::interval
 //#define ITL_INTERVAL_DEFAULT itl::rightopen_interval
 //#define ITL_INTERVAL_DEFAULT itl::continuous_interval
-//#define ITL_INTERVAL_DEFAULT itl::interval_type_of
+
+#ifdef NEW_INTERVAL_IMPL
+# define ITL_INTERVAL_DEFAULT itl::interval_type_of
+#else
+# define ITL_INTERVAL_DEFAULT boost::itl::interval
+#endif
 
 //------------------------------------------------------------------------------
 //JODO find proper solution here
-#define ITL_discrt_INTERVAL_DEF itl::interval
-#define ITL_contin_INTERVAL_DEF itl::interval
-//#define ITL_discrt_INTERVAL_DEF itl::discrete_interval
-//#define ITL_contin_INTERVAL_DEF itl::continuous_interval
+#ifdef NEW_INTERVAL_IMPL
+# define ITL_discrt_INTERVAL_DEF itl::discrete_interval
+# define ITL_contin_INTERVAL_DEF itl::continuous_interval
+#else
+# define ITL_discrt_INTERVAL_DEF itl::interval
+# define ITL_contin_INTERVAL_DEF itl::interval
+#endif
 
 //------------------------------------------------------------------------------
 #define ITL_ALLOC template<class>class

Modified: sandbox/itl/boost/itl/discrete_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/discrete_interval.hpp (original)
+++ sandbox/itl/boost/itl/discrete_interval.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -20,8 +20,6 @@
 namespace boost{namespace itl
 {
 
-typedef unsigned char bound_type; //JODO
-
 template <class DomainT,
           ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
 class discrete_interval : public base_interval<DomainT,Compare>
@@ -42,8 +40,7 @@
     {
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- //JODO URG BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
- //JODO we must assert this via appropriate defaults for template parameters
+ BOOST_STATIC_ASSERT((!itl::is_continuous<DomainT>::value)); //JODO
     }
 
     //NOTE: Compiler generated copy constructor is used
@@ -54,7 +51,7 @@
     {
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- //JODO BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
+ BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value)); //JODO
     }
 
     /** Interval from <tt>low</tt> to <tt>up</tt> with bounds <tt>bounds</tt> */
@@ -65,7 +62,7 @@
     {
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
- //JODO BOOST_STATIC_ASSERT((itl::is_continuous<DomainT>::value));
+ JODO BOOST_STATIC_ASSERT((!itl::is_continuous<DomainT>::value));
     }
 
     domain_type lower()const { return _lwb; }
@@ -95,7 +92,8 @@
     if(itl::is_empty(object))
         return stream << "[)";
     else
- return stream << "[" << object.lower() << "," << object.upper()<< ")";//JODO
+ return stream << left_bracket(object.bounds()) << object.lower()
+ << "," << object.upper()<< right_bracket(object.bounds());
 }
 
 

Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -36,6 +36,52 @@
 #include <boost/itl/interval_bounds.hpp>
 #include <boost/itl/interval_functions.hpp>
 
+//JODO For the migration from old to new itl::intervals activate this code:
+//
+//#ifdef ITL_NEW_INTERVAL_IMPL
+//
+//#include <boost/itl/type_traits/interval_type_of.hpp>
+//#include <boost/itl/discrete_interval.hpp>
+//#include <boost/itl/continuous_interval.hpp>
+//
+//namespace boost{namespace itl
+//{
+//
+//template <class DomainT, ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
+//class interval
+//{
+//public:
+// typedef typename interval_type_of<DomainT,Compare>::type type;
+//
+// /** Closed interval <tt>[low,up]</tt> */
+// static type closed(const DomainT& low, const DomainT& up)
+// { return type(low, up, interval_bounds::closed()); }
+//
+// /** Rightopen interval <tt>[low,up)</tt> */
+// static type rightopen(const DomainT& low, const DomainT& up)
+// { return type(low, up, interval_bounds::right_open); }
+//
+// /** Leftopen interval <tt>(low,up]</tt> */
+// static type leftopen(const DomainT& low, const DomainT& up)
+// { return type(low, up, interval_bounds::left_open); }
+//
+// /** Open interval <tt>(low,up)</tt> */
+// static type open(const DomainT& low, const DomainT& up)
+// { return type(low, up, interval_bounds::open); }
+//
+//};
+//
+///// Comparison functor on intervals implementing an overlap free less
+//template <class IntervalT>
+//struct exclusive_less_than {
+// /** Operator <tt>operator()</tt> implements a strict weak ordering on intervals. */
+// bool operator()(const IntervalT& left, const IntervalT& right)const
+// { return exclusive_less(left, right); }
+//};
+//
+//}} // namespace itl boost
+//
+//#else //ITL_NEW_INTERVAL_IMPL
 
 namespace boost{namespace itl
 {
@@ -1124,8 +1170,9 @@
     { return 2; }
 };
 
-
 }} // namespace itl boost
 
-#endif
+//JODO interval migration #endif // ITL_NEW_INTERVAL_IMPL
+
+#endif // BOOST_ITL_INTERVAL_HPP_JOFA_000626
 

Modified: sandbox/itl/boost/itl/interval_bounds.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_bounds.hpp (original)
+++ sandbox/itl/boost/itl/interval_bounds.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -31,20 +31,30 @@
 class interval_bounds
 {
 public:
+ BOOST_STATIC_CONSTANT(bound_type, _open = 0);
+ BOOST_STATIC_CONSTANT(bound_type, _leftopen = 1);
+ BOOST_STATIC_CONSTANT(bound_type, _rightopen = 2);
+ BOOST_STATIC_CONSTANT(bound_type, _closed = 3);
+
+ BOOST_STATIC_CONSTANT(bound_type, _right = 1);
+ BOOST_STATIC_CONSTANT(bound_type, _left = 2);
+ BOOST_STATIC_CONSTANT(bound_type, _all = 3);
+
+public:
     interval_bounds():_bits(){}
     explicit interval_bounds(bound_type bounds): _bits(bounds){}
- interval_bounds both ()const { return interval_bounds(_bits & 3); } //JODO literals
- interval_bounds left ()const { return interval_bounds(_bits & 2); }
- interval_bounds right()const { return interval_bounds(_bits & 1); }
- interval_bounds reverse_left ()const { return interval_bounds((~_bits>>1) & 1); }
- interval_bounds reverse_right()const { return interval_bounds((~_bits<<1) & 2); }
+ interval_bounds all ()const { return interval_bounds(_bits & _all ); }
+ interval_bounds left ()const { return interval_bounds(_bits & _left ); }
+ interval_bounds right()const { return interval_bounds(_bits & _right); }
+ interval_bounds reverse_left ()const { return interval_bounds((~_bits>>1) & _right); }
+ interval_bounds reverse_right()const { return interval_bounds((~_bits<<1) & _left ); }
 
     bound_type bits()const{ return _bits; }
 
- static interval_bounds open() { return interval_bounds(0); } //JODO URG LITERALS
- static interval_bounds left_open() { return interval_bounds(1); }
- static interval_bounds right_open(){ return interval_bounds(2); }
- static interval_bounds closed() { return interval_bounds(3); }
+ static interval_bounds open() { return interval_bounds(_open); }
+ static interval_bounds left_open() { return interval_bounds(_leftopen); }
+ static interval_bounds right_open(){ return interval_bounds(_rightopen);}
+ static interval_bounds closed() { return interval_bounds(_closed); }
 
 public:
     bound_type _bits;
@@ -52,13 +62,13 @@
 
 
 inline interval_bounds left(interval_bounds x1)
-{ return interval_bounds(x1._bits & 2); }
+{ return interval_bounds(x1._bits & interval_bounds::_left); }
 
 inline interval_bounds right(interval_bounds x1)
-{ return interval_bounds(x1._bits & 1); }
+{ return interval_bounds(x1._bits & interval_bounds::_right); }
 
 inline interval_bounds all(interval_bounds x1)
-{ return interval_bounds(x1._bits & 3); }
+{ return interval_bounds(x1._bits & interval_bounds::_all); }
 
 inline bool operator == (const interval_bounds x1, const interval_bounds x2)
 { return x1._bits == x2._bits; }

Modified: sandbox/itl/boost/itl/interval_functions.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_functions.hpp (original)
+++ sandbox/itl/boost/itl/interval_functions.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -537,7 +537,7 @@
 template<class IntervalT>
 typename boost::enable_if<is_continuous_interval<IntervalT>,
     typename IntervalT::size_type>::type
-size(IntervalT object) //JODO conficting with metafunction size<T>::type -> sizetype<T>::type
+size(IntervalT object)
 {
     return cardinality(object);
 }

Modified: sandbox/itl/boost/validate/laws/monoid.hpp
==============================================================================
--- sandbox/itl/boost/validate/laws/monoid.hpp (original)
+++ sandbox/itl/boost/validate/laws/monoid.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -92,9 +92,9 @@
 
         bool holds()
         {
- this->template setOutputValue<lhs_sum>(this->template getInputValue<operand_a>() + this->template getInputValue<operand_b>());
- this->template setOutputValue<rhs_sum>(this->template getInputValue<operand_b>() + this->template getInputValue<operand_a>());
- return this->template getOutputValue<lhs_sum>() == this->template getOutputValue<rhs_sum>();
+ this->template setOutputValue<lhs_result>(this->template getInputValue<operand_a>() + this->template getInputValue<operand_b>());
+ this->template setOutputValue<rhs_result>(this->template getInputValue<operand_b>() + this->template getInputValue<operand_a>());
+ return this->template getOutputValue<lhs_result>() == this->template getOutputValue<rhs_result>();
         }
 
         bool debug_holds(){ return holds(); }
@@ -140,9 +140,9 @@
 
         bool holds()
         {
- this->template setOutputValue<lhs_sum>(this->template getInputValue<operand_a>() + this->template getInputValue<operand_b>());
- this->template setOutputValue<rhs_sum>(this->template getInputValue<operand_b>() + this->template getInputValue<operand_a>());
- return this->template getOutputValue<lhs_sum>() == this->template getOutputValue<rhs_sum>();
+ this->template setOutputValue<lhs_result>(this->template getInputValue<operand_a>() + this->template getInputValue<operand_b>());
+ this->template setOutputValue<rhs_result>(this->template getInputValue<operand_b>() + this->template getInputValue<operand_a>());
+ return this->template getOutputValue<lhs_result>() == this->template getOutputValue<rhs_result>();
         }
 
         bool debug_holds(){ return holds(); }
@@ -182,18 +182,6 @@
 
     public:
 
- enum InputVarIndex { operand_a, operand_b };
- enum OutputVarIndex { lhs_result, rhs_result };
-
- void setOperand_a(const Type& inVal) { this->template setInputValue<operand_a>(inVal); }
-
- Type getLhsResult()const { return this->template getOutputValue<lhs_result>(); }
-
- size_t size()const
- {
- return value_size<Type>::apply(this->template getInputValue<operand_a>());
- }
-
         bool holds()
         {
             Type lhs = this->template getInputValue<operand_a>();
@@ -231,18 +219,6 @@
 
     public:
 
- enum InputVarIndex { operand_a, operand_b, operand_c };
- enum OutputVarIndex { lhs_sum, rhs_sum };
-
- void setOperand_a(const Type& inVal) { this->template setInputValue<operand_a>(inVal); }
- void setOperand_b(const Type& inVal) { this->template setInputValue<operand_b>(inVal); }
- void setOperand_c(const Type& inVal) { this->template setInputValue<operand_c>(inVal); }
- void setOperands(const Type& inVal_a, const Type& inVal_b, const Type& inVal_c)
- { this->template setInputValue<operand_b>(inVal_a); this->template setInputValue<operand_b>(inVal_b); this->template setInputValue<operand_b>(inVal_c); }
-
- Type getLhsSum()const { return this->template getOutputValue<lhs_sum>(); }
- Type getRhsSum()const { return this->template getOutputValue<rhs_sum>(); }
-
         size_t size()const
         {
             return
@@ -262,8 +238,8 @@
             Accumulator<Type>()(b_plus_c, this->template getInputValue<operand_c>());
             Accumulator<Type>()(rsum, b_plus_c);
 
- this->template setOutputValue<lhs_sum>(lsum);
- this->template setOutputValue<rhs_sum>(rsum);
+ this->template setOutputValue<lhs_result>(lsum);
+ this->template setOutputValue<rhs_result>(rsum);
 
             return Equality<Type>()(lsum, rsum);
         }
@@ -290,8 +266,8 @@
             Accumulator<Type>()(rsum, b_plus_c);
             std::cout << "a o (b o c): " << rsum << std::endl;
 
- this->template setOutputValue<lhs_sum>(lsum);
- this->template setOutputValue<rhs_sum>(rsum);
+ this->template setOutputValue<lhs_result>(lsum);
+ this->template setOutputValue<rhs_result>(rsum);
 
             return Equality<Type>()(lsum, rsum);
         }
@@ -321,21 +297,10 @@
 
     public:
 
- enum InputVarIndex { operand_a, operand_b };
- enum OutputVarIndex { lhs_sum, rhs_sum };
-
- void setOperand_a(const Type& inVal) { this->template setInputValue<operand_a>(inVal); }
- void setOperand_b(const Type& inVal) { this->template setInputValue<operand_b>(inVal); }
- void setOperands(const Type& inVal_a, const Type& inVal_b)
- { this->template setInputValue<operand_b>(inVal_a); this->template setInputValue<operand_b>(inVal_b); }
-
- Type getLhsSum()const { return this->template getOutputValue<lhs_sum>(); }
- Type getRhsSum()const { return this->template getOutputValue<rhs_sum>(); }
-
         size_t size()const
         {
             return value_size<Type>::apply(this->template getInputValue<operand_a>())+
- value_size<Type>::apply(this->template getInputValue<operand_b>());
+ value_size<Type>::apply(this->template getInputValue<operand_b>());
         }
 
         bool holds()
@@ -345,8 +310,8 @@
             Type rsum = this->template getInputValue<operand_b>();
             rsum += this->template getInputValue<operand_a>();
 
- this->template setOutputValue<lhs_sum>(lsum);
- this->template setOutputValue<rhs_sum>(rsum);
+ this->template setOutputValue<lhs_result>(lsum);
+ this->template setOutputValue<rhs_result>(rsum);
 
             return lsum == rsum;
         }
@@ -366,8 +331,8 @@
             rsum += this->template getInputValue<operand_a>();
             std::cout << "b o a: " << rsum << std::endl;
 
- this->template setOutputValue<lhs_sum>(lsum);
- this->template setOutputValue<rhs_sum>(rsum);
+ this->template setOutputValue<lhs_result>(lsum);
+ this->template setOutputValue<rhs_result>(rsum);
 
             return lsum == rsum;
         }

Modified: sandbox/itl/boost/validate/loki_xt/TypelistGentor.h
==============================================================================
--- sandbox/itl/boost/validate/loki_xt/TypelistGentor.h (original)
+++ sandbox/itl/boost/validate/loki_xt/TypelistGentor.h 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -93,23 +93,23 @@
         };
 
         // --------------------------------------------------------------------
- // JODO Extension for Typelist:
- // class template MapType
- // MapType(F, Typelist<T1,...,Tn>) = Typelist<F<T1>,...,F<Tn> >
+ // Extension for Typelist:
+ // template class MapUnaryTemplate
+ // MapUnaryTemplate(F, Typelist<T1,...,Tn>) = Typelist<F<T1>,...,F<Tn> >
         // --------------------------------------------------------------------
         template<template<typename TypeT>class UnaryTemplate, typename Typelist>
- struct MapType;
+ struct MapUnaryTemplate;
 
         template<template<typename TypeT>class UnaryTemplate>
- struct MapType<UnaryTemplate, NullType>
+ struct MapUnaryTemplate<UnaryTemplate, NullType>
         {
             typedef NullType Result;
         };
 
         template<template<typename TypeT>class UnaryTemplate, class Head, class Tail>
- struct MapType<UnaryTemplate, Typelist<Head, Tail> >
+ struct MapUnaryTemplate<UnaryTemplate, Typelist<Head, Tail> >
         {
- typedef Typelist<UnaryTemplate<Head>, typename MapType<UnaryTemplate, Tail>::Result> Result;
+ typedef Typelist<UnaryTemplate<Head>, typename MapUnaryTemplate<UnaryTemplate, Tail>::Result> Result;
         };
 
     }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -79,27 +79,27 @@
     {
         switch(_lawChoice.some())
         {
- case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_bit_add>, RandomGentor>;
- case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type, inplace_bit_add>, RandomGentor>;
- case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_bit_add>, RandomGentor>;
- case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_bit_and>, RandomGentor>;
- case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_bit_and>, RandomGentor>;
- case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type, inplace_bit_add, inplace_bit_subtract, inplace_bit_and>, RandomGentor>;
- case inplaceFlip: return new LawValidater<InplaceFlip<Type>, RandomGentor>;
+ case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_bit_add> >;
+ case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type, inplace_bit_add> >;
+ case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_bit_add> >;
+ case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_bit_and> >;
+ case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_bit_and> >;
+ case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type, inplace_bit_add, inplace_bit_subtract, inplace_bit_and> >;
+ case inplaceFlip: return new LawValidater<InplaceFlip<Type> >;
         case inplaceEtDistributivity:
             if(itl::is_interval_splitter<Type>::value && absorbs_neutrons<Type>::value && !is_total<Type>::value)
- return new LawValidater<InplaceDistributivity<Type, inplace_bit_and, inplace_bit_add, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceDistributivity<Type, inplace_bit_and, inplace_bit_add, std_equal>, RandomGentor>;
+ return new LawValidater<InplaceDistributivity<Type, inplace_bit_and, inplace_bit_add, element_equal> >;
+ else return new LawValidater<InplaceDistributivity<Type, inplace_bit_and, inplace_bit_add, std_equal> >;
         case inplacePlusDashRightDistrib:
             if(itl::is_interval_splitter<Type>::value && absorbs_neutrons<Type>::value && !is_total<Type>::value)
- return new LawValidater<InplaceRightDistributivity<Type, inplace_bit_add, inplace_bit_subtract, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceRightDistributivity<Type, inplace_bit_add, inplace_bit_subtract, std_equal>, RandomGentor>;
- case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_bit_and, inplace_bit_subtract>, RandomGentor>;
- case inplacePlusDeMorgan: return new LawValidater<InplaceDeMorgan<Type, inplace_bit_add, inplace_bit_and, inplace_bit_subtract, itl::std_equal>, RandomGentor>;
+ return new LawValidater<InplaceRightDistributivity<Type, inplace_bit_add, inplace_bit_subtract, element_equal> >;
+ else return new LawValidater<InplaceRightDistributivity<Type, inplace_bit_add, inplace_bit_subtract, std_equal> >;
+ case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_bit_and, inplace_bit_subtract> >;
+ case inplacePlusDeMorgan: return new LawValidater<InplaceDeMorgan<Type, inplace_bit_add, inplace_bit_and, inplace_bit_subtract, itl::std_equal> >;
         case inplaceEtDeMorgan:
             if(itl::is_interval_splitter<Type>::value || itl::is_interval_separator<Type>::value)
- return new LawValidater<InplaceDeMorgan<Type, inplace_bit_and, inplace_bit_add, inplace_bit_subtract, itl::element_equal>, RandomGentor>;
- else return new LawValidater<InplaceDeMorgan<Type, inplace_bit_and, inplace_bit_add, inplace_bit_subtract, itl::std_equal>, RandomGentor>;
+ return new LawValidater<InplaceDeMorgan<Type, inplace_bit_and, inplace_bit_add, inplace_bit_subtract, itl::element_equal> >;
+ else return new LawValidater<InplaceDeMorgan<Type, inplace_bit_and, inplace_bit_add, inplace_bit_subtract, itl::std_equal> >;
 
         default: return NULL;
         }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -84,27 +84,27 @@
     {
         switch(_lawChoice.some())
         {
- case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_plus>, RandomGentor>;
- case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type>, RandomGentor>;
- case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type>, RandomGentor>;
- case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_et>, RandomGentor>;
- case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et>, RandomGentor>;
- case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type>, RandomGentor>;
- case inplaceFlip: return new LawValidater<InplaceFlip<Type>, RandomGentor>;
+ case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_plus> >;
+ case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type> >;
+ case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type> >;
+ case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_et> >;
+ case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et> >;
+ case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type> >;
+ case inplaceFlip: return new LawValidater<InplaceFlip<Type> >;
         case inplaceEtDistributivity:
             if(itl::is_interval_splitter<Type>::value && absorbs_neutrons<Type>::value && !is_total<Type>::value)
- return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, std_equal>, RandomGentor>;
+ return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, element_equal> >;
+ else return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, std_equal> >;
         case inplacePlusDashRightDistrib:
             if(itl::is_interval_splitter<Type>::value && absorbs_neutrons<Type>::value && !is_total<Type>::value)
- return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, std_equal>, RandomGentor>;
- case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_et, inplace_minus>, RandomGentor>;
- case inplacePlusDeMorgan: return new LawValidater<InplaceDeMorgan<Type, inplace_plus, inplace_et, itl::std_equal>, RandomGentor>;
+ 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 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>, RandomGentor>;
- else return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, itl::std_equal>, RandomGentor>;
+ 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> >;
 
         default: return NULL;
         }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -86,27 +86,27 @@
     {
         switch(_lawChoice.some())
         {
- case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_plus>, RandomGentor>;
- case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type>, RandomGentor>;
- case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type>, RandomGentor>;
- case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_et>, RandomGentor>;
- case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et>, RandomGentor>;
- case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type>, RandomGentor>;
- case inplaceFlip: return new LawValidater<InplaceFlip<Type>, RandomGentor>;
+ case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_plus> >;
+ case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type> >;
+ case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type> >;
+ case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_et> >;
+ case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et> >;
+ case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type> >;
+ case inplaceFlip: return new LawValidater<InplaceFlip<Type> >;
         case inplaceEtDistributivity:
             if(itl::is_interval_splitter<Type>::value)
- return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, std_equal>, RandomGentor>;
+ return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, element_equal> >;
+ else return new LawValidater<InplaceDistributivity<Type, inplace_et, inplace_plus, std_equal> >;
         case inplacePlusDashRightDistrib:
             if(itl::is_interval_splitter<Type>::value)
- return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, std_equal>, RandomGentor>;
- case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_et, inplace_minus>, RandomGentor>;
- case inplacePlusDeMorgan: return new LawValidater<InplaceDeMorgan<Type, inplace_plus, inplace_et, itl::std_equal>, RandomGentor>;
+ 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 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>, RandomGentor>;
- else return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, itl::std_equal>, RandomGentor>;
+ 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> >;
 
         default: return NULL;
         }

Modified: sandbox/itl/boost/validate/validater/law_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/law_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/law_validater.hpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -56,7 +56,7 @@
         for a given law \c LawT and a generator template, that
         produces a matching generator of input variables for the law.
     */
- template <class LawT, template<typename>class GentorT>
+ template <class LawT, template<typename>class GentorT = RandomGentor>
     class LawValidater : public LawValidaterI
     {
     public:
@@ -65,7 +65,7 @@
         typedef typename LawT::input_tuple input_tuple; // The tuple type for input variables of the law
         typedef typename LawT::output_tuple output_tuple; // The tuple type for input variables of the law
         
- typedef typename Loki::TL::MapType<GentorT, input_types>::Result gentor_types;
+ typedef typename Loki::TL::MapUnaryTemplate<GentorT, input_types>::Result gentor_types;
         typedef typename Loki::tuple<gentor_types> input_gentor;
 
     public:

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -51,9 +51,9 @@
         {
             switch(_lawChoice.some())
             {
- case transitivity: return new LawValidater<Transitivity<Type, Relation>, RandomGentor>;
- case antisymmetry: return new LawValidater<Antisymmetry<Type, Relation, Equality>, RandomGentor>;
- case reflexivity: return new LawValidater<Reflexivity <Type, Relation>, RandomGentor>;
+ case transitivity: return new LawValidater<Transitivity<Type, Relation> >;
+ case antisymmetry: return new LawValidater<Antisymmetry<Type, Relation, Equality> >;
+ case reflexivity: return new LawValidater<Reflexivity <Type, Relation> >;
             default: return NULL;
             }
         }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -94,29 +94,29 @@
         {
         case inplacePlusAssociativity:
             if(is_interval_splitter<Type>::value)
- return new LawValidater<InplaceAssociativity<Type, inplace_plus, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceAssociativity<Type, inplace_plus, std_equal>, RandomGentor>;
- case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type>, RandomGentor>;
- case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type>, RandomGentor>;
+ return new LawValidater<InplaceAssociativity<Type, inplace_plus, element_equal> >;
+ else return new LawValidater<InplaceAssociativity<Type, inplace_plus, std_equal> >;
+ case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type> >;
+ case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type> >;
         case inplaceEtAssociativity:
             if(absorbs_neutrons<Type>::value && is_total<Type>::value)
- return new LawValidater<InplaceAssociativity<Type, inplace_et, element_equal>, RandomGentor>;
- else return new LawValidater<InplaceAssociativity<Type, inplace_et>, RandomGentor>;
- case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et>, RandomGentor>;
+ return new LawValidater<InplaceAssociativity<Type, inplace_et, element_equal> >;
+ else return new LawValidater<InplaceAssociativity<Type, inplace_et> >;
+ case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et> >;
         case inplaceNaturalInversion:
             if(absorbs_neutrons<Type>::value)
- return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal>, RandomGentor>;
- else return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, protonic_equal>, RandomGentor>;
- case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type>, RandomGentor>;
- case inplaceFlip: return new LawValidater<InplaceFlip<Type>, RandomGentor>;
+ return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal> >;
+ else return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, protonic_equal> >;
+ case inplaceSymmetricDifference:return new LawValidater<InplaceSymmetricDifference<Type> >;
+ case inplaceFlip: return new LawValidater<InplaceFlip<Type> >;
         case sectionAbsorbtion:
             if(absorbs_neutrons<Type>::value)
- return new LawValidater<SectionAbsorbtion<Type,std_equal>, RandomGentor>;
- else return new LawValidater<SectionAbsorbtion<Type,protonic_equal>, RandomGentor>;
+ return new LawValidater<SectionAbsorbtion<Type,std_equal> >;
+ else return new LawValidater<SectionAbsorbtion<Type,protonic_equal> >;
         case inplaceInverseExistence:
             if(absorbs_neutrons<Type>::value)
- return new LawValidater<InplaceInverseExistence<Type, inplace_plus, std_equal>, RandomGentor>;
- else return new LawValidater<InplaceInverseExistence<Type, inplace_plus, protonic_equal>, RandomGentor>;
+ return new LawValidater<InplaceInverseExistence<Type, inplace_plus, std_equal> >;
+ else return new LawValidater<InplaceInverseExistence<Type, inplace_plus, protonic_equal> >;
         default: return NULL;
         }
     }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -89,19 +89,19 @@
     {
         switch(_lawChoice.some())
         {
- case copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy_back >, RandomGentor>;
- case copy_backward : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy_backward_back >, RandomGentor>;
- case reverse_copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_reverse_copy_back >, RandomGentor>;
- case equal : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_equals_back >, RandomGentor>;
- case lexicographical_compare : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_lexicographical_compare_back >, RandomGentor>;
- case includes : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_includes_back >, RandomGentor>;
- case set_union : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_union_back >, RandomGentor>;
- case set_difference : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_difference_back >, RandomGentor>;
- case set_intersection : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_intersection_back >, RandomGentor>;
- case set_symmetric_difference: return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_symmetric_difference_back >, RandomGentor>;
- case find : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_find_back >, RandomGentor>;
- case lower_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_lower_bound_back >, RandomGentor>;
- case upper_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_upper_bound_back >, RandomGentor>;
+ case copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy_back > >;
+ case copy_backward : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy_backward_back > >;
+ case reverse_copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_reverse_copy_back > >;
+ case equal : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_equals_back > >;
+ case lexicographical_compare : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_lexicographical_compare_back > >;
+ case includes : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_includes_back > >;
+ case set_union : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_union_back > >;
+ case set_difference : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_difference_back > >;
+ case set_intersection : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_intersection_back > >;
+ case set_symmetric_difference: return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_symmetric_difference_back > >;
+ case find : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_find_back > >;
+ case lower_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_lower_bound_back > >;
+ case upper_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_upper_bound_back > >;
         default: return NULL;
         }
     }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -91,19 +91,19 @@
     {
         switch(_lawChoice.some())
         {
- case copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy >, RandomGentor>;
- case copy_backward : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy_backward >, RandomGentor>;
- case reverse_copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_reverse_copy >, RandomGentor>;
- case equal : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_equals >, RandomGentor>;
- case lexicographical_compare : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_lexicographical_compare >, RandomGentor>;
- case includes : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_includes >, RandomGentor>;
- case set_union : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_union >, RandomGentor>;
- case set_difference : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_difference >, RandomGentor>;
- case set_intersection : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_intersection >, RandomGentor>;
- case set_symmetric_difference: return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_symmetric_difference >, RandomGentor>;
- case find : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_find >, RandomGentor>;
- case lower_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_lower_bound >, RandomGentor>;
- case upper_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_upper_bound >, RandomGentor>;
+ case copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy > >;
+ case copy_backward : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_copy_backward > >;
+ case reverse_copy : return new LawValidater< UnaryAtomicEquivalence <Type, TargetT, std_reverse_copy > >;
+ case equal : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_equals > >;
+ case lexicographical_compare : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_lexicographical_compare > >;
+ case includes : return new LawValidater<BinaryAtomicEquivalence <Type, bool, std_includes > >;
+ case set_union : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_union > >;
+ case set_difference : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_difference > >;
+ case set_intersection : return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_intersection > >;
+ case set_symmetric_difference: return new LawValidater<BinaryAtomicEquivalence <Type, TargetT, std_set_symmetric_difference > >;
+ case find : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_find > >;
+ case lower_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_lower_bound > >;
+ case upper_bound : return new LawValidater< UnaryAtomicEquivalence2<Type, element_type, std_upper_bound > >;
         default: return NULL;
         }
     }

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-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -71,19 +71,19 @@
     {
         switch(_lawChoice.some())
         {
- case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_plus>, RandomGentor>;
- case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type>, RandomGentor>;
- case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type>, RandomGentor>;
- case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_et>, RandomGentor>;
- case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et>, RandomGentor>;
+ case inplacePlusAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_plus> >;
+ case inplacePlusNeutrality: return new LawValidater<InplaceNeutrality <Type> >;
+ case inplacePlusCommutativity: return new LawValidater<InplaceCommutativity<Type> >;
+ case inplaceEtAssociativity: return new LawValidater<InplaceAssociativity<Type, inplace_et> >;
+ case inplaceEtCommutativity: return new LawValidater<InplaceCommutativity<Type, inplace_et> >;
         case inplaceNaturalInversion:
             if(absorbs_neutrons<Type>::value)
- return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal>, RandomGentor>;
- else return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, protonic_equal>, RandomGentor>;
+ return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal> >;
+ else return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, protonic_equal> >;
         case sectionAbsorbtion:
             if(absorbs_neutrons<Type>::value)
- return new LawValidater<SectionAbsorbtion<Type,std_equal>, RandomGentor>;
- else return new LawValidater<SectionAbsorbtion<Type,protonic_equal>, RandomGentor>;
+ return new LawValidater<SectionAbsorbtion<Type,std_equal> >;
+ else return new LawValidater<SectionAbsorbtion<Type,protonic_equal> >;
         default: return NULL;
         }
     }

Modified: sandbox/itl/libs/itl/build/win32/vc9_all.sln
==============================================================================
--- sandbox/itl/libs/itl/build/win32/vc9_all.sln (original)
+++ sandbox/itl/libs/itl/build/win32/vc9_all.sln 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -147,6 +147,8 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_itv_bitset", "..\..\..\validate\example\labat_itv_bitset_\vc9_labat_itv_bitset.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F472B}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_continuous_interval", "..\..\test\test_continuous_interval_\vc9_test_continuous_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2B9F8C}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -445,6 +447,10 @@
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Debug|Win32.Build.0 = Debug|Win32
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Release|Win32.ActiveCfg = Release|Win32
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F472B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2B9F8C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2B9F8C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2B9F8C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2B9F8C}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE

Added: sandbox/itl/libs/validate/doc/boostcon2010/377px-Prussian_Fusiliers.jpg
==============================================================================
Binary file. No diff available.

Added: sandbox/itl/libs/validate/doc/boostcon2010/Alabasterschale_Volterra_Italien.jpg
==============================================================================
Binary file. No diff available.

Added: sandbox/itl/libs/validate/doc/boostcon2010/BoostAlabaster.pptx
==============================================================================
Binary file. No diff available.

Added: sandbox/itl/libs/validate/doc/boostcon2010/Sisyphus_by_von_Stuck.jpg
==============================================================================
Binary file. No diff available.

Added: sandbox/itl/libs/validate/doc/boostcon2010/~$BoostAlabaster.pptx
==============================================================================
Binary file. No diff available.

Modified: sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -70,13 +70,12 @@
     // <interval_map<int,int,partial_enricher>, itl::inplace_plus, itl::inplace_minus> TestLawT;
     //LawValidater<TestLawT, RandomGentor> test_law;
 
- typedef InplaceCommutativity
- <separate_interval_set<double> > TestLawT;
- LawValidater<TestLawT, RandomGentor> test_law;
+ typedef InplaceCommutativity<itl::list<double> > TestLawT;
+ LawValidater<TestLawT> test_law;
 
     
     //-----------------------------------------------------------------------------
- int test_count = 100000;
+ int test_count = 10000;
     ptime start, stop;
 
     GentorProfileSgl::it()->set_std_profile(8,1);

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 2010-04-22 08:29:49 EDT (Thu, 22 Apr 2010)
@@ -39,6 +39,8 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_set_order", "labat_set_order_\vc9_labat_set_order.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F4728}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_collector", "labat_collector_\vc9_labat_collector.vcproj", "{9EF72937-0585-487D-B887-5359BFA569E8}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -121,6 +123,10 @@
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F4728}.Debug|Win32.Build.0 = Debug|Win32
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F4728}.Release|Win32.ActiveCfg = Release|Win32
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F4728}.Release|Win32.Build.0 = Release|Win32
+ {9EF72937-0585-487D-B887-5359BFA569E8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9EF72937-0585-487D-B887-5359BFA569E8}.Debug|Win32.Build.0 = Debug|Win32
+ {9EF72937-0585-487D-B887-5359BFA569E8}.Release|Win32.ActiveCfg = Release|Win32
+ {9EF72937-0585-487D-B887-5359BFA569E8}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE


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