Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r50864 - in sandbox/itl: boost/itl boost/itl/type_traits boost/itl_xt boost/validate boost/validate/laws libs/itl/doc libs/itl/example/boost_party libs/itl/test libs/itl/test/test_quantifier_map libs/itl_xt/test/meta_functors libs/validate/example/labat_single libs/validate/example/labatea
From: afojgo_at_[hidden]
Date: 2009-01-29 03:47:28


Author: jofaber
Date: 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
New Revision: 50864
URL: http://svn.boost.org/trac/boost/changeset/50864

Log:
Refactored. Renamed Map::Traits. Introduced is_total<T>. Stable {msvc-9.0, partly congcc-4.3-a7}

Added:
   sandbox/itl/boost/itl/type_traits/is_total.hpp (contents, props changed)
Removed:
   sandbox/itl/boost/itl/type_traits/emits_neutrons.hpp
Text files modified:
   sandbox/itl/boost/itl/interval_base_map.hpp | 34 +++++++-------
   sandbox/itl/boost/itl/interval_map.hpp | 16 +++---
   sandbox/itl/boost/itl/interval_set.hpp | 2
   sandbox/itl/boost/itl/map.hpp | 44 +++++++++---------
   sandbox/itl/boost/itl/map_algo.hpp | 4
   sandbox/itl/boost/itl/separate_interval_set.hpp | 2
   sandbox/itl/boost/itl/set.hpp | 4
   sandbox/itl/boost/itl/split_interval_map.hpp | 14 +++---
   sandbox/itl/boost/itl/split_interval_set.hpp | 2
   sandbox/itl/boost/itl_xt/tuple_computer.hpp | 2
   sandbox/itl/boost/validate/itl_validater.hpp | 10 ++--
   sandbox/itl/boost/validate/itv_map_groupig_validater.hpp | 32 ++++++------
   sandbox/itl/boost/validate/itv_map_settic_validater.hpp | 26 +++++-----
   sandbox/itl/boost/validate/itv_set_validater.hpp | 8 +-
   sandbox/itl/boost/validate/laws/set_laws.h | 18 +++---
   sandbox/itl/boost/validate/realmvalidater.h | 24 +++++-----
   sandbox/itl/boost/validate/typevalidater.h | 58 ++++++++++++------------
   sandbox/itl/libs/itl/doc/concepts.qbk | 74 +++++++++++++++++++-------------
   sandbox/itl/libs/itl/doc/itl.qbk | 10 ++--
   sandbox/itl/libs/itl/doc/semantics.qbk | 92 ++++++++++++++++++++--------------------
   sandbox/itl/libs/itl/example/boost_party/boost_party.cpp | 2
   sandbox/itl/libs/itl/test/test_interval_map_shared.hpp | 34 +++++++-------
   sandbox/itl/libs/itl/test/test_laws.hpp | 2
   sandbox/itl/libs/itl/test/test_quantifier_map/test_quantifier_map_shared.cpp | 18 +++---
   sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp | 2
   sandbox/itl/libs/validate/example/labat_single/labat_single.cpp | 20 ++++----
   sandbox/itl/libs/validate/example/labatea/labatea.cpp | 14 +++---
   27 files changed, 291 insertions(+), 277 deletions(-)

Modified: sandbox/itl/boost/itl/interval_base_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_map.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -139,7 +139,7 @@
     class SubType,
     typename DomainT,
     typename CodomainT,
- class Traits = itl::neutron_absorber,
+ class Traits = itl::partial_absorber,
     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT),
         ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, CodomainT),
         ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, CodomainT),
@@ -164,8 +164,8 @@
                               type;
 
     typedef interval_base_map<SubType,DomainT,CodomainT,
- itl::neutron_absorber,Compare,Combine,Section,Interval,Alloc>
- neutron_absorber_type;
+ itl::partial_absorber,Compare,Combine,Section,Interval,Alloc>
+ partial_absorber_type;
 
         typedef type overloadable_type;
 
@@ -242,7 +242,7 @@
         
 public:
     inline static bool has_symmetric_difference()
- { return is_set<codomain_type>::value || (!is_set<codomain_type>::value && !traits::emits_neutrons); }
+ { return is_set<codomain_type>::value || (!is_set<codomain_type>::value && !traits::is_total); }
 
         enum{ is_itl_container = true };
 
@@ -454,7 +454,7 @@
         will be decremented by <tt>y</tt>: <tt>y0 -= y</tt> via operator <tt>-=</tt>
         which has to be implemented for CodomainT. If <tt>y</tt> becomes
         the neutral element CodomainT() <tt>k</tt> will also be removed from
- the map, if the Traits include the property neutron_absorber.
+ the map, if the Traits include the property partial_absorber.
 
         Insertion and subtraction are reversible as follows:
         <tt>m0=m; m.add(x); m.subtract(x);</tt> implies <tt>m==m0 </tt>
@@ -476,11 +476,11 @@
 
         If <tt>y</tt> becomes the neutral element CodomainT() <tt>k</tt> will
         also be removed from the map, if the Traits include the property
- neutron_absorber.
+ partial_absorber.
     */
     SubType& subtract(const value_type& x)
     {
- if(Traits::emits_neutrons && !is_set<codomain_type>::value)
+ if(Traits::is_total && !is_set<codomain_type>::value)
                         that()->template add_<inverse_codomain_combine>(x);
         else
                         that()->template subtract_<inverse_codomain_combine>(x);
@@ -743,13 +743,13 @@
             erase_if(content_is_neutron<value_type>());
     }
 
- /// Copies this map into a neutron_absorber type.
+ /// Copies this map into a partial_absorber type.
     /** \c x is a copy of \c *this as a neutron_aborber.
         A neutron absorber is a map that does not store neutral elements
         (<tt>neutron() == codomain_type()</tt>)
         as associated values.
     */
- void as_neutron_absorber(neutron_absorber_type& x)const
+ void as_neutron_absorber(partial_absorber_type& x)const
     { FOR_IMPLMAP(it) x.add(*it); }
 
     /// Join bounding intervals
@@ -973,7 +973,7 @@
     typedef IntervalMap<DomainT,CodomainT,
                         Traits,Compare,Combine,Section,Interval,Alloc> sectant_type;
 
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
         {
                 intersection = *this;
                 intersection += sectant;
@@ -1002,7 +1002,7 @@
                     const typename interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
                     ::value_type& sectant)const
 {
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
         {
                 section = *this;
                 section.add(sectant);
@@ -1076,12 +1076,12 @@
         // That which is not shall be added
         // So x has to be 'complementary added' or flipped
 
- if(Traits::emits_neutrons && Traits::absorbs_neutrons)
+ if(Traits::is_total && Traits::absorbs_neutrons)
         {
                 clear();
                 return *that();
         }
- if(Traits::emits_neutrons && !Traits::absorbs_neutrons)//JODO
+ if(Traits::is_total && !Traits::absorbs_neutrons)//JODO
         {
                 (*that()) += x;
                 FORALL(typename ImplMapT, it_, _map)
@@ -1140,7 +1140,7 @@
         //If span is not empty here, it is not in the set so it shall be added
         add(value_type(span, x_value));
 
- if(Traits::emits_neutrons && !Traits::absorbs_neutrons) //JODO
+ if(Traits::is_total && !Traits::absorbs_neutrons) //JODO
                 FORALL(typename ImplMapT, it_, _map)
                         it_->CONT_VALUE = neutron<codomain_type>::value();
 
@@ -1171,12 +1171,12 @@
 {
     typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
 
- if(Traits::emits_neutrons && Traits::absorbs_neutrons)
+ if(Traits::is_total && Traits::absorbs_neutrons)
         {
                 clear();
                 return *that();
         }
- if(Traits::emits_neutrons && !Traits::absorbs_neutrons)//JODO
+ if(Traits::is_total && !Traits::absorbs_neutrons)//JODO
         {
                 (*that()) += operand;
                 FORALL(typename ImplMapT, it_, _map)
@@ -1206,7 +1206,7 @@
     while(it != operand.end())
         add(*it++);
 
- if(Traits::emits_neutrons && !Traits::absorbs_neutrons) //JODO
+ if(Traits::is_total && !Traits::absorbs_neutrons) //JODO
                 FORALL(typename ImplMapT, it_, _map)
                         it_->CONT_VALUE = neutron<codomain_type>::value();
 

Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -111,7 +111,7 @@
 <
     typename DomainT,
     typename CodomainT,
- class Traits = itl::neutron_absorber,
+ class Traits = itl::partial_absorber,
     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT),
     ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, CodomainT),
         ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, CodomainT),
@@ -132,8 +132,8 @@
     typedef interval_base_map <interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
                                DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> base_type;
 
- typedef interval_map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Section,Interval,Alloc>
- neutron_absorber_type;
+ typedef interval_map<DomainT,CodomainT,itl::partial_absorber,Compare,Combine,Section,Interval,Alloc>
+ partial_absorber_type;
 
     typedef Interval<DomainT,Compare> interval_type;
     typedef typename base_type::iterator iterator;
@@ -404,7 +404,7 @@
         return this->_map.end();
 
     std::pair<iterator,bool> insertion;
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
     {
         CodomainT added_val = Combiner::neutron();
         Combiner()(added_val, value.CONT_VALUE);
@@ -435,7 +435,7 @@
         return this->_map.end();
 
     std::pair<iterator,bool> insertion;
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
     {
         CodomainT added_val = Combiner::neutron();
         Combiner()(added_val, value.CONT_VALUE);
@@ -470,7 +470,7 @@
         return;
 
     std::pair<iterator,bool> insertion;
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
     {
         CodomainT added_val = Combiner::neutron();
         Combiner()(added_val, x_val);
@@ -1035,8 +1035,8 @@
 { enum{value = Traits::absorbs_neutrons}; };
 
 template <class KeyT, class DataT, class Traits>
-struct emits_neutrons<itl::interval_map<KeyT,DataT,Traits> >
-{ enum{value = Traits::emits_neutrons}; };
+struct is_total<itl::interval_map<KeyT,DataT,Traits> >
+{ enum{value = Traits::is_total}; };
 
 template <class KeyT, class DataT, class Traits>
 struct type_to_string<itl::interval_map<KeyT,DataT,Traits> >

Modified: sandbox/itl/boost/itl/interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_set.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -405,7 +405,7 @@
 { enum{value = false}; };
 
 template <class Type>
-struct emits_neutrons<itl::interval_set<Type> >
+struct is_total<itl::interval_set<Type> >
 { enum{value = false}; };
 
 template <class Type>

Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -47,43 +47,43 @@
 namespace boost{namespace itl
 {
 
- struct neutron_absorber
+ struct partial_absorber
     {
         enum { absorbs_neutrons = true };
- enum { emits_neutrons = false };
+ enum { is_total = false };
     };
 
     template<>
- inline std::string type_to_string<neutron_absorber>::apply() { return "@0"; }
+ inline std::string type_to_string<partial_absorber>::apply() { return "@0"; }
 
 
- struct neutron_enricher
+ struct partial_enricher
     {
         enum { absorbs_neutrons = false };
- enum { emits_neutrons = false };
+ enum { is_total = false };
 
     };
 
     template<>
- inline std::string type_to_string<neutron_enricher>::apply() { return "e0"; }
+ inline std::string type_to_string<partial_enricher>::apply() { return "e0"; }
 
- struct neutron_emitter
+ struct total_absorber
     {
         enum { absorbs_neutrons = true };
- enum { emits_neutrons = true };
+ enum { is_total = true };
     };
 
     template<>
- inline std::string type_to_string<neutron_emitter>::apply() { return "^0"; }
+ inline std::string type_to_string<total_absorber>::apply() { return "^0"; }
 
- struct neutron_polluter
+ struct total_enricher
     {
         enum { absorbs_neutrons = false };
- enum { emits_neutrons = true };
+ enum { is_total = true };
     };
 
     template<>
- inline std::string type_to_string<neutron_polluter>::apply() { return "e^0"; }
+ inline std::string type_to_string<total_enricher>::apply() { return "e^0"; }
 
 
     /*JODO move this comment to concept InplaceAddable, InplaceSubtractable, InplaceCombinable
@@ -103,7 +103,7 @@
     <
         typename DomainT,
         typename CodomainT,
- class Traits = itl::neutron_absorber,
+ class Traits = itl::partial_absorber,
         ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT),
         ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, CodomainT),
                 ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, CodomainT),
@@ -120,8 +120,8 @@
                                   allocator_type> base_type;
         typedef typename itl::set<DomainT, Compare, Alloc > set_type;
 
- typedef itl::map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Section,Alloc>
- neutron_absorber_type;
+ typedef itl::map<DomainT,CodomainT,itl::partial_absorber,Compare,Combine,Section,Alloc>
+ partial_absorber_type;
         typedef Traits traits;
 
     public:
@@ -193,7 +193,7 @@
 
     public:
         inline static bool has_symmetric_difference()
- { return is_set<codomain_type>::value || (!is_set<codomain_type>::value && !traits::emits_neutrons); }
+ { return is_set<codomain_type>::value || (!is_set<codomain_type>::value && !traits::is_total); }
 
     public:
         // --------------------------------------------------------------------
@@ -229,7 +229,7 @@
             subtraced from the data value stored in the map. */
         map& subtract(const value_type& value_pair)
                 {
- if(Traits::emits_neutrons && !is_set<codomain_type>::value)
+ if(Traits::is_total && !is_set<codomain_type>::value)
                                 this->template add<inverse_codomain_combine>(value_pair);
                         else
                                 this->template subtract<inverse_codomain_combine>(value_pair);
@@ -311,7 +311,7 @@
             *this;
 
         std::pair<iterator, bool> insertion;
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
         {
             CodomainT added_val = Combiner::neutron();
             Combiner()(added_val, val.CONT_VALUE);
@@ -591,7 +591,7 @@
                      const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
     {
                 typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- if(Traits::emits_neutrons && !is_set<typename ObjectT::codomain_type>::value)
+ if(Traits::is_total && !is_set<typename ObjectT::codomain_type>::value)
             const_FORALL(typename ObjectT, it_, operand)
                                 object.template add<ObjectT::inverse_codomain_combine>(*it_);
         else Set::subtract(object, operand);
@@ -633,7 +633,7 @@
     operator &= ( itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object,
                      const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
     {
- if(Traits::emits_neutrons) return object += operand;
+ if(Traits::is_total) return object += operand;
                 else{ Map::intersect(object, operand); return object; }
         }
 
@@ -719,8 +719,8 @@
     { enum{value = Traits::absorbs_neutrons}; };
 
     template <class DomainT, class CodomainT, class Traits>
- struct emits_neutrons<itl::map<DomainT,CodomainT,Traits> >
- { enum{value = Traits::emits_neutrons}; };
+ struct is_total<itl::map<DomainT,CodomainT,Traits> >
+ { enum{value = Traits::is_total}; };
 
     template <class DomainT, class CodomainT, class Traits>
     struct type_to_string<itl::map<DomainT,CodomainT,Traits> >

Modified: sandbox/itl/boost/itl/map_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/map_algo.hpp (original)
+++ sandbox/itl/boost/itl/map_algo.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -163,7 +163,7 @@
         template<class MapType>
         void flip(MapType& result, const MapType& x2)
         {
- if(emits_neutrons<MapType>::value && absorbs_neutrons<MapType>::value)
+ if(is_total<MapType>::value && absorbs_neutrons<MapType>::value)
                         {
                                 result.clear();
                                 return;
@@ -192,7 +192,7 @@
                                 }
                         }
 
- if(emits_neutrons<MapType>::value && !absorbs_neutrons<MapType>::value)//JODO
+ if(is_total<MapType>::value && !absorbs_neutrons<MapType>::value)//JODO
                                 FORALL(typename MapType, it_, result)
                                         it_->CONT_VALUE = neutron<typename MapType::codomain_type>::value();
         }

Modified: sandbox/itl/boost/itl/separate_interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/separate_interval_set.hpp (original)
+++ sandbox/itl/boost/itl/separate_interval_set.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -288,7 +288,7 @@
 { enum{value = false}; };
 
 template <class Type>
-struct emits_neutrons<itl::separate_interval_set<Type> >
+struct is_total<itl::separate_interval_set<Type> >
 { enum{value = false}; };
 
 template <class Type>

Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -43,7 +43,7 @@
 #include <boost/itl/type_traits/is_interval_splitter.hpp>
 #include <boost/itl/type_traits/is_interval_separator.hpp>
 #include <boost/itl/type_traits/absorbs_neutrons.hpp>
-#include <boost/itl/type_traits/emits_neutrons.hpp>
+#include <boost/itl/type_traits/is_total.hpp>
 #include <boost/itl/set_algo.hpp>
 #include <boost/itl/predicates.hpp>
 
@@ -512,7 +512,7 @@
     { enum{value = false}; };
 
     template <class Type>
- struct emits_neutrons<itl::set<Type> >
+ struct is_total<itl::set<Type> >
     { enum{value = false}; };
 
     template <class Type>

Modified: sandbox/itl/boost/itl/split_interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_map.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_map.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -128,7 +128,7 @@
     <
         typename DomainT,
         typename CodomainT,
- class Traits = itl::neutron_absorber,
+ class Traits = itl::partial_absorber,
         ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT),
         ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, CodomainT),
                 ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, CodomainT),
@@ -148,8 +148,8 @@
         typedef interval_base_map <split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
                                    DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> base_type;
 
- typedef split_interval_map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Section,Interval,Alloc>
- neutron_absorber_type;
+ typedef split_interval_map<DomainT,CodomainT,itl::partial_absorber,Compare,Combine,Section,Interval,Alloc>
+ partial_absorber_type;
 
         typedef Interval<DomainT,Compare> interval_type;
         typedef typename base_type::iterator iterator;
@@ -287,7 +287,7 @@
     if(Traits::absorbs_neutrons && value.CONT_VALUE == Combiner::neutron())
         return;
 
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
     {
         CodomainT added_val = Combiner::neutron();
         Combiner()(added_val, value.CONT_VALUE);
@@ -318,7 +318,7 @@
         return;
 
     std::pair<iterator,bool> insertion;
- if(Traits::emits_neutrons)
+ if(Traits::is_total)
     {
         CodomainT added_val = Combiner::neutron();
         Combiner()(added_val, x_val);
@@ -805,8 +805,8 @@
 { enum{value = Traits::absorbs_neutrons}; };
 
 template <class KeyT, class DataT, class Traits>
-struct emits_neutrons<itl::split_interval_map<KeyT,DataT,Traits> >
-{ enum{value = Traits::emits_neutrons}; };
+struct is_total<itl::split_interval_map<KeyT,DataT,Traits> >
+{ enum{value = Traits::is_total}; };
 
 template <class KeyT, class DataT, class Traits>
 struct type_to_string<itl::split_interval_map<KeyT,DataT,Traits> >

Modified: sandbox/itl/boost/itl/split_interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_set.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_set.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -444,7 +444,7 @@
     { enum{value = false}; };
 
     template <class Type>
- struct emits_neutrons<itl::split_interval_set<Type> >
+ struct is_total<itl::split_interval_set<Type> >
     { enum{value = false}; };
 
     template <class Type>

Deleted: sandbox/itl/boost/itl/type_traits/emits_neutrons.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/emits_neutrons.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
+++ (empty file)
@@ -1,21 +0,0 @@
-/*----------------------------------------------------------------------------+
-Copyright (c) 2008-2008: Joachim Faulhaber
-+-----------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+----------------------------------------------------------------------------*/
-#ifndef __itl_type_traits_emits_neutrons_JOFA_081004_H__
-#define __itl_type_traits_emits_neutrons_JOFA_081004_H__
-
-namespace boost{ namespace itl
-{
- template <class Type> struct emits_neutrons;
-
- template <class Type> struct emits_neutrons{ enum {value = false}; };
-
-}} // namespace boost itl
-
-#endif
-
-

Added: sandbox/itl/boost/itl/type_traits/is_total.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/type_traits/is_total.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -0,0 +1,21 @@
+/*----------------------------------------------------------------------------+
+Copyright (c) 2008-2008: Joachim Faulhaber
++-----------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++----------------------------------------------------------------------------*/
+#ifndef __itl_type_traits_is_total_JOFA_081004_H__
+#define __itl_type_traits_is_total_JOFA_081004_H__
+
+namespace boost{ namespace itl
+{
+ template <class Type> struct is_total;
+
+ template <class Type> struct is_total{ enum {value = false}; };
+
+}} // namespace boost itl
+
+#endif
+
+

Modified: sandbox/itl/boost/itl_xt/tuple_computer.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/tuple_computer.hpp (original)
+++ sandbox/itl/boost/itl_xt/tuple_computer.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -102,7 +102,7 @@
         typedef var_tuple<VarCount> var_tuple_type;
         typedef var_tuple_order<var_tuple_type> tuple_order_type;
         /// Container type for the implementation
- typedef itl::map<var_tuple_type, CounterT, neutron_absorber, var_tuple_order> ImplMapTD;
+ typedef itl::map<var_tuple_type, CounterT, partial_absorber, var_tuple_order> ImplMapTD;
         /// iterator
         typedef typename ImplMapTD::iterator iterator;
         /// const_iterator

Modified: sandbox/itl/boost/validate/itl_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/itl_validater.hpp (original)
+++ sandbox/itl/boost/validate/itl_validater.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -39,7 +39,7 @@
 
     namespace NeutronHandlerType
     {
- enum NeutronHandlerTypes { absorber, enricher, emitter, polluter, NeutronHandlerTypes_size };
+ enum NeutronHandlerTypes { partial_absorber, partial_enricher, total_absorber, total_enricher, NeutronHandlerTypes_size };
     }
 
     
@@ -157,10 +157,10 @@
         void setNeutronHandlerTypeNames()
         {
             std::vector<std::string> type_names(NeutronHandlerType::NeutronHandlerTypes_size);
- type_names[NeutronHandlerType::absorber] = "absorber";
- type_names[NeutronHandlerType::enricher] = "enricher";
- type_names[NeutronHandlerType::emitter] = "emitter";
- type_names[NeutronHandlerType::polluter] = "polluter";
+ type_names[NeutronHandlerType::partial_absorber] = "partial_absorber";
+ type_names[NeutronHandlerType::partial_enricher] = "partial_enricher";
+ type_names[NeutronHandlerType::total_absorber] = "total_absorber";
+ type_names[NeutronHandlerType::total_enricher] = "total_enricher";
             _neutronizerChoice.setTypeNames(type_names);
         }
 

Modified: sandbox/itl/boost/validate/itv_map_groupig_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/itv_map_groupig_validater.hpp (original)
+++ sandbox/itl/boost/validate/itv_map_groupig_validater.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -57,10 +57,10 @@
 
             _neutronizerChoice.setSize(NeutronHandlerType::NeutronHandlerTypes_size);
             _neutronizerChoice.setMaxWeights(100);
- _neutronizerChoice[NeutronHandlerType::absorber] = 25;
- _neutronizerChoice[NeutronHandlerType::enricher] = 25;
- _neutronizerChoice[NeutronHandlerType::emitter] = 25;
- _neutronizerChoice[NeutronHandlerType::polluter] = 25;
+ _neutronizerChoice[NeutronHandlerType::partial_absorber] = 25;
+ _neutronizerChoice[NeutronHandlerType::partial_enricher] = 25;
+ _neutronizerChoice[NeutronHandlerType::total_absorber] = 25;
+ _neutronizerChoice[NeutronHandlerType::total_enricher] = 25;
             setNeutronHandlerTypeNames();
             _neutronizerChoice.init();
 
@@ -103,30 +103,30 @@
             //-----------------------------------------------------------------
             case RootType::itl_map: {
                 switch(neutronizerChoice) {
- case NeutronHandlerType::absorber: return new InplaceMapValidater<itl::map<int,int> >;
- case NeutronHandlerType::enricher: return new InplaceMapValidater<itl::map<int,int,neutron_enricher > >;
- case NeutronHandlerType::emitter : return new InplaceMapValidater<itl::map<int,int,neutron_emitter > >;
- case NeutronHandlerType::polluter: return new InplaceMapValidater<itl::map<int,int,neutron_polluter > >;
+ case NeutronHandlerType::partial_absorber: return new InplaceMapValidater<itl::map<int,int> >;
+ case NeutronHandlerType::partial_enricher: return new InplaceMapValidater<itl::map<int,int,partial_enricher > >;
+ case NeutronHandlerType::total_absorber : return new InplaceMapValidater<itl::map<int,int,total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new InplaceMapValidater<itl::map<int,int,total_enricher > >;
                 default: return choiceError(ITL_LOCATION("\nRootType::itl_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
                 }//switch neutronizerChoice
             }//case itl_map
             //-----------------------------------------------------------------
             case RootType::interval_map: {
                 switch(neutronizerChoice) {
- case NeutronHandlerType::absorber: return new IntervalMapValidater<interval_map<int,int> >;
- case NeutronHandlerType::enricher: return new IntervalMapValidater<interval_map<int,int,neutron_enricher > >;
- case NeutronHandlerType::emitter : return new IntervalMapValidater<interval_map<int,int,neutron_emitter > >;
- case NeutronHandlerType::polluter: return new IntervalMapValidater<interval_map<int,int,neutron_polluter > >;
+ case NeutronHandlerType::partial_absorber: return new IntervalMapValidater<interval_map<int,int> >;
+ case NeutronHandlerType::partial_enricher: return new IntervalMapValidater<interval_map<int,int,partial_enricher > >;
+ case NeutronHandlerType::total_absorber : return new IntervalMapValidater<interval_map<int,int,total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new IntervalMapValidater<interval_map<int,int,total_enricher > >;
                 default: return choiceError(ITL_LOCATION("\nRootType::interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
                 }//switch neutronizerChoice
             }//case interval_map
             //-----------------------------------------------------------------
             case RootType::split_interval_map: {
                 switch(neutronizerChoice) {
- case NeutronHandlerType::absorber: return new IntervalMapValidater<split_interval_map<int,int> >;
- case NeutronHandlerType::enricher: return new IntervalMapValidater<split_interval_map<int,int,neutron_enricher > >;
- case NeutronHandlerType::emitter : return new IntervalMapValidater<split_interval_map<int,int,neutron_emitter > >;
- case NeutronHandlerType::polluter: return new IntervalMapValidater<split_interval_map<int,int,neutron_polluter > >;
+ case NeutronHandlerType::partial_absorber: return new IntervalMapValidater<split_interval_map<int,int> >;
+ case NeutronHandlerType::partial_enricher: return new IntervalMapValidater<split_interval_map<int,int,partial_enricher > >;
+ case NeutronHandlerType::total_absorber : return new IntervalMapValidater<split_interval_map<int,int,total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new IntervalMapValidater<split_interval_map<int,int,total_enricher > >;
                 default: return choiceError(ITL_LOCATION("\nRootType::split_interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
                 }//switch neutronizerChoice
             }//case split_interval_map

Modified: sandbox/itl/boost/validate/itv_map_settic_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/itv_map_settic_validater.hpp (original)
+++ sandbox/itl/boost/validate/itv_map_settic_validater.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -57,10 +57,10 @@
 
             _neutronizerChoice.setSize(NeutronHandlerType::NeutronHandlerTypes_size);
             _neutronizerChoice.setMaxWeights(100);
- _neutronizerChoice[NeutronHandlerType::absorber] = 50;
- _neutronizerChoice[NeutronHandlerType::enricher] = 50;
- _neutronizerChoice[NeutronHandlerType::emitter] = 0;
- _neutronizerChoice[NeutronHandlerType::polluter] = 0;
+ _neutronizerChoice[NeutronHandlerType::partial_absorber] = 50;
+ _neutronizerChoice[NeutronHandlerType::partial_enricher] = 50;
+ _neutronizerChoice[NeutronHandlerType::total_absorber] = 0;
+ _neutronizerChoice[NeutronHandlerType::total_enricher] = 0;
             setNeutronHandlerTypeNames();
             _neutronizerChoice.init();
 
@@ -103,27 +103,27 @@
             //-----------------------------------------------------------------
             case RootType::itl_map: {
                 switch(neutronizerChoice) {
- case NeutronHandlerType::absorber: return new InplaceMapValidater<itl::map<int,itl::set<int> > >;
- case NeutronHandlerType::enricher: return new InplaceMapValidater<itl::map<int,itl::set<int>,neutron_enricher> >;
- //case NeutronHandlerType::emitter : return new InplaceMapValidater<itl::map<int,itl::set<int>,neutron_emitter > >;
+ case NeutronHandlerType::partial_absorber: return new InplaceMapValidater<itl::map<int,itl::set<int> > >;
+ case NeutronHandlerType::partial_enricher: return new InplaceMapValidater<itl::map<int,itl::set<int>,partial_enricher> >;
+ //case NeutronHandlerType::total_absorber : return new InplaceMapValidater<itl::map<int,itl::set<int>,total_absorber > >;
                 default: return choiceError(ITL_LOCATION("\nRootType::itl_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
                 }//switch neutronizerChoice
             }//case itl_map
             //-----------------------------------------------------------------
             case RootType::interval_map: {
                 switch(neutronizerChoice) {
- case NeutronHandlerType::absorber: return new IntervalMapValidater<interval_map<int,itl::set<int> > >;
- case NeutronHandlerType::enricher: return new IntervalMapValidater<interval_map<int,itl::set<int>,neutron_enricher> >;
- //case NeutronHandlerType::emitter : return new IntervalMapValidater<interval_map<int,itl::set<int>,neutron_emitter > >;
+ case NeutronHandlerType::partial_absorber: return new IntervalMapValidater<interval_map<int,itl::set<int> > >;
+ case NeutronHandlerType::partial_enricher: return new IntervalMapValidater<interval_map<int,itl::set<int>,partial_enricher> >;
+ //case NeutronHandlerType::total_absorber : return new IntervalMapValidater<interval_map<int,itl::set<int>,total_absorber > >;
                 default: return choiceError(ITL_LOCATION("\nRootType::interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
                 }//switch neutronizerChoice
             }//case interval_map
             //-----------------------------------------------------------------
             case RootType::split_interval_map: {
                 switch(neutronizerChoice) {
- case NeutronHandlerType::absorber: return new IntervalMapValidater<split_interval_map<int,itl::set<int> > >;
- case NeutronHandlerType::enricher: return new IntervalMapValidater<split_interval_map<int,itl::set<int>,neutron_enricher> >;
- //case NeutronHandlerType::emitter : return new IntervalMapValidater<split_interval_map<int,itl::set<int>,neutron_emitter > >;
+ case NeutronHandlerType::partial_absorber: return new IntervalMapValidater<split_interval_map<int,itl::set<int> > >;
+ case NeutronHandlerType::partial_enricher: return new IntervalMapValidater<split_interval_map<int,itl::set<int>,partial_enricher> >;
+ //case NeutronHandlerType::total_absorber : return new IntervalMapValidater<split_interval_map<int,itl::set<int>,total_absorber > >;
                 default: return choiceError(ITL_LOCATION("\nRootType::split_interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
                 }//switch neutronizerChoice
             }//case split_interval_map

Modified: sandbox/itl/boost/validate/itv_set_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/itv_set_validater.hpp (original)
+++ sandbox/itl/boost/validate/itv_set_validater.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -57,10 +57,10 @@
 
             _neutronizerChoice.setSize(NeutronHandlerType::NeutronHandlerTypes_size);
             _neutronizerChoice.setMaxWeights(100);
- _neutronizerChoice[NeutronHandlerType::absorber] = 100;
- _neutronizerChoice[NeutronHandlerType::enricher] = 0;
- _neutronizerChoice[NeutronHandlerType::emitter] = 0;
- _neutronizerChoice[NeutronHandlerType::polluter] = 0;
+ _neutronizerChoice[NeutronHandlerType::partial_absorber] = 100;
+ _neutronizerChoice[NeutronHandlerType::partial_enricher] = 0;
+ _neutronizerChoice[NeutronHandlerType::total_absorber] = 0;
+ _neutronizerChoice[NeutronHandlerType::total_enricher] = 0;
             setNeutronHandlerTypeNames();
             _neutronizerChoice.init();
 

Modified: sandbox/itl/boost/validate/laws/set_laws.h
==============================================================================
--- sandbox/itl/boost/validate/laws/set_laws.h (original)
+++ sandbox/itl/boost/validate/laws/set_laws.h 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -20,8 +20,8 @@
     template <typename Type,
               template<class>class Combiner = inplace_plus,
                       template<class>class Equality = itl::std_equal>
- class InplaceSelfRemovability
- : public Law<InplaceSelfRemovability<Type,Combiner,Equality>,
+ class InplaceNaturalInversion
+ : public Law<InplaceNaturalInversion<Type,Combiner,Equality>,
                      LOKI_TYPELIST_1(Type), LOKI_TYPELIST_2(Type,Type)>
     {
         //a - a == 0
@@ -32,15 +32,15 @@
     public:
                 typedef typename inverse<Combiner<Type> >::type InverseCombinerT;
 
- std::string name()const { return "InplaceSelfRemovability"; }
+ std::string name()const { return "InplaceNaturalInversion"; }
         std::string formula()const { return "a -= a; a == 0"; }
 
         std::string typeString()const
         {
- return "SelfRemovability<"+type_to_string<Type>::apply()+","
+ return "NaturalInversion<"+type_to_string<Type>::apply()+","
                                       +unary_template_to_string<Combiner>::apply()+","
                                       +unary_template_to_string<Equality>::apply()
- +">";
+ +">";
         }
 
     public:
@@ -70,8 +70,8 @@
     template <typename Type,
               template<class>class Combiner = inplace_plus,
                       template<class>class Equality = itl::std_equal>
- class InplaceInverseRemovability
- : public Law<InplaceInverseRemovability<Type,Combiner,Equality>,
+ class InplaceInverseExistence
+ : public Law<InplaceInverseExistence<Type,Combiner,Equality>,
                      LOKI_TYPELIST_1(Type), LOKI_TYPELIST_2(Type,Type)>
     {
         //(0 - a) + a == 0
@@ -82,12 +82,12 @@
     public:
                 typedef typename inverse<Combiner<Type> >::type InverseCombinerT;
 
- std::string name()const { return "InplaceInverseRemovability"; }
+ std::string name()const { return "InplaceInverseExistence"; }
         std::string formula()const { return "(0-a) + a == 0"; }
 
         std::string typeString()const
         {
- return "InverseRemovability<"+type_to_string<Type>::apply()+","
+ return "InverseExistence<"+type_to_string<Type>::apply()+","
                                       +unary_template_to_string<Combiner>::apply()+","
                                       +unary_template_to_string<Equality>::apply()
                                                                           +">";

Modified: sandbox/itl/boost/validate/realmvalidater.h
==============================================================================
--- sandbox/itl/boost/validate/realmvalidater.h (original)
+++ sandbox/itl/boost/validate/realmvalidater.h 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -56,10 +56,10 @@
 
             _neutronizerChoice.setSize(NeutronHandlerType::NeutronHandlerTypes_size);
             _neutronizerChoice.setMaxWeights(100);
- _neutronizerChoice[NeutronHandlerType::absorber] = 50;
- _neutronizerChoice[NeutronHandlerType::enricher] = 50;
- _neutronizerChoice[NeutronHandlerType::emitter] = 0;
- _neutronizerChoice[NeutronHandlerType::polluter] = 0;
+ _neutronizerChoice[NeutronHandlerType::partial_absorber] = 50;
+ _neutronizerChoice[NeutronHandlerType::partial_enricher] = 50;
+ _neutronizerChoice[NeutronHandlerType::total_absorber] = 0;
+ _neutronizerChoice[NeutronHandlerType::total_enricher] = 0;
             setNeutronHandlerTypeNames();
             _neutronizerChoice.init();
 
@@ -166,8 +166,8 @@
 
                 case DomainType::Double:
                     switch(codomainChoice) {
- case CodomainType::Int: return new InplaceMapValidater<itl::map<double,int,neutron_enricher> >;
- case CodomainType::set_int: return new InplaceSetValidater<itl::map<double,itl::set<int>,neutron_enricher > >;
+ case CodomainType::Int: return new InplaceMapValidater<itl::map<double,int,partial_enricher> >;
+ case CodomainType::set_int: return new InplaceSetValidater<itl::map<double,itl::set<int>,partial_enricher > >;
                     default: return choiceError(ITL_LOCATION("\nRootType::itl_map: codomainChoice:\n"),
                                                 codomainChoice, _codomainChoice);
                     }//switch codomain
@@ -181,15 +181,15 @@
                 switch(domainChoice) {
                 case DomainType::Int:
                     switch(codomainChoice) {
- case CodomainType::Int: return new IntervalMapValidater<interval_map<int,int,neutron_emitter> >;
+ case CodomainType::Int: return new IntervalMapValidater<interval_map<int,int,total_absorber> >;
                     case CodomainType::set_int: return new IntervalMapValidater<interval_map<int,itl::set<int> > >;
                     default: return choiceError(ITL_LOCATION("\nRootType::interval_map: codomainChoice:\n"),
                                                 codomainChoice, _codomainChoice);
                     }// switch codomain
                 case DomainType::Double:
                     switch(codomainChoice) {
- case CodomainType::Int: return new IntervalMapValidater<interval_map<double,int,neutron_polluter> >;
- case CodomainType::set_int: return new IntervalMapValidater<interval_map<double,itl::set<int>,neutron_enricher > >;
+ case CodomainType::Int: return new IntervalMapValidater<interval_map<double,int,total_enricher> >;
+ case CodomainType::set_int: return new IntervalMapValidater<interval_map<double,itl::set<int>,partial_enricher > >;
                     default: return choiceError(ITL_LOCATION("\nRootType::interval_map: codomainChoice:\n"),
                                                 codomainChoice, _codomainChoice);
                     }// switch codomain
@@ -202,14 +202,14 @@
                 switch(domainChoice) {
                 case DomainType::Int:
                     switch(codomainChoice) {
- case CodomainType::Int: return new IntervalMapValidater<split_interval_map<int,int,neutron_enricher> >;
- case CodomainType::set_int: return new IntervalMapValidater<split_interval_map<int,itl::set<int>,neutron_enricher> >;
+ case CodomainType::Int: return new IntervalMapValidater<split_interval_map<int,int,partial_enricher> >;
+ case CodomainType::set_int: return new IntervalMapValidater<split_interval_map<int,itl::set<int>,partial_enricher> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::split_interval_map: codomainChoice:\n"),
                                                 codomainChoice, _codomainChoice);
                     }
                 case DomainType::Double:
                     switch(codomainChoice) {
- case CodomainType::Int: return new IntervalMapValidater<split_interval_map<double,int,neutron_emitter> >;
+ case CodomainType::Int: return new IntervalMapValidater<split_interval_map<double,int,total_absorber> >;
                     case CodomainType::set_int: return new IntervalSetValidater<split_interval_map<double,itl::set<int> > >;
                     default: return choiceError(ITL_LOCATION("\nRootType::split_interval_map: codomainChoice:\n"),
                                                 codomainChoice, _codomainChoice);

Modified: sandbox/itl/boost/validate/typevalidater.h
==============================================================================
--- sandbox/itl/boost/validate/typevalidater.h (original)
+++ sandbox/itl/boost/validate/typevalidater.h 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -263,7 +263,7 @@
             //JODO _lawChoice[inplaceStarDistributivity] = 100; // only (map|cop)<set> NOT (map|cop)<group>
             //JODO _lawChoice[inplacePlusDeMorgan] = 100; // only (map|cop)<set> NOT (map|cop)<group>
             //JODO _lawChoice[inplaceStarDeMorgan] = 100; // only (map|cop)<set> NOT (map|cop)<group>
- //JODO _lawChoice[inplaceSelfRemovability] = 25; // only cop NOT map
+ //JODO _lawChoice[inplaceNaturalInversion] = 25; // only cop NOT map
             _lawChoice.init();
         }
 
@@ -326,7 +326,7 @@
             inplaceSetBaseLaws,
             inplaceSymmetricDifference,
             inplaceFlip,
- inplaceSelfRemovability,
+ inplaceNaturalInversion,
             inplacePlusDistributivity,
             inplaceStarDistributivity,
             inplacePlusDashRightDistrib,
@@ -348,7 +348,7 @@
             _lawChoice[inplaceSetBaseLaws] = base_weight;
             _lawChoice[inplaceSymmetricDifference] = weight;
             _lawChoice[inplaceFlip] = weight;
- _lawChoice[inplaceSelfRemovability] = weight;
+ _lawChoice[inplaceNaturalInversion] = weight;
             _lawChoice[inplacePlusDistributivity] = weight;
             _lawChoice[inplaceStarDistributivity] = weight;
             _lawChoice[inplacePlusDashRightDistrib] = weight;
@@ -376,15 +376,15 @@
             case inplaceSymmetricDifference: return new LawValidater<InplaceSymmetricDifference<Type>, RandomGentor>;
             case inplaceFlip: return new LawValidater<InplaceFlip<Type>, RandomGentor>;
 
- case inplaceSelfRemovability:
+ case inplaceNaturalInversion:
                                 if( itl::is_map<Type>::value && itl::is_set<typename Type::codomain_type>::value
- && !absorbs_neutrons<Type>::value && !emits_neutrons<Type>::value)
+ && !absorbs_neutrons<Type>::value && !is_total<Type>::value)
                                         return new
                                                 mpl::if_<mpl::bool_<is_map<Type>::value>,
- LawValidater<InplaceSelfRemovability<Type, inplace_plus, protonic_equal>, RandomGentor>,
- LawValidater<InplaceSelfRemovability<Type, inplace_plus, std_equal>, RandomGentor> >::type;
+ LawValidater<InplaceNaturalInversion<Type, inplace_plus, protonic_equal>, RandomGentor>,
+ LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal>, RandomGentor> >::type;
                                 else
- return new LawValidater<InplaceSelfRemovability<Type, inplace_plus, std_equal>, RandomGentor>;
+ return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal>, RandomGentor>;
 
             case inplacePlusDistributivity:
                 if( itl::is_interval_container<Type>::value && itl::is_interval_splitter<Type>::value)
@@ -394,14 +394,14 @@
 
             case inplaceStarDistributivity:
                 if( itl::is_interval_container<Type>::value && itl::is_interval_splitter<Type>::value
- && absorbs_neutrons<Type>::value && !emits_neutrons<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>;
 
             case inplacePlusDashRightDistrib:
                 if( itl::is_interval_container<Type>::value && itl::is_interval_splitter<Type>::value
- && absorbs_neutrons<Type>::value && !emits_neutrons<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>;
@@ -431,7 +431,7 @@
             case inplaceSetBaseLaws: return InplaceSetBaseValidater<Type>::chooseValidater();
             case inplaceSymmetricDifference: return new LawValidater<InplaceSymmetricDifference<Type>, RandomGentor>;
             case inplaceFlip: return new LawValidater<InplaceFlip<Type>, RandomGentor>;
- case inplaceSelfRemovability: return new LawValidater<InplaceSelfRemovability<Type, inplace_plus, std_equal>, RandomGentor>;
+ case inplaceNaturalInversion: return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal>, RandomGentor>;
 
             case inplacePlusDistributivity:
                 if( itl::is_interval_container<Type>::value && itl::is_interval_splitter<Type>::value)
@@ -525,8 +525,8 @@
             inplaceSetBaseLaws,
             inplaceSymmetricDifference,
             inplaceFlip,
- inplaceSelfRemovability,
- inplaceInverseRemovability,
+ inplaceNaturalInversion,
+ inplaceInverseExistence,
             sectionAbsorbtion,
             Laws_size
         };
@@ -543,28 +543,28 @@
                 _lawChoice[inplaceSetBaseLaws] = 95;
                 _lawChoice[inplaceSymmetricDifference] = 0; // Is validated in base class
                 _lawChoice[inplaceFlip] = 0; // Is validated in base class
- _lawChoice[inplaceSelfRemovability] = 0; // Is validated in base class
- _lawChoice[inplaceInverseRemovability] = 0; // Is not valid for sets
+ _lawChoice[inplaceNaturalInversion] = 0; // Is validated in base class
+ _lawChoice[inplaceInverseExistence] = 0; // Is not valid for sets
                 _lawChoice[sectionAbsorbtion] = 5;
                         }
- else if(!emits_neutrons<Type>::value)
+ else if(!is_total<Type>::value)
             {
                                 //JODO A map of group values that does not emit neutrons always has a symmetric difference
                                 BOOST_ASSERT(Type::has_symmetric_difference());
                 _lawChoice[inplaceSetBaseLaws] = 80;
                 _lawChoice[inplaceSymmetricDifference] = 5;
                 _lawChoice[inplaceFlip] = 5;
- _lawChoice[inplaceSelfRemovability] = 5;
- _lawChoice[inplaceInverseRemovability] = 0;
+ _lawChoice[inplaceNaturalInversion] = 5;
+ _lawChoice[inplaceInverseExistence] = 0;
                 _lawChoice[sectionAbsorbtion] = 5;
             }
- else // !is_set && emits_neutrons //JODO && is_abelian_group<Type::value>
+ else // !is_set && is_total //JODO && is_abelian_group<Type::value>
             {
                 _lawChoice[inplaceSetBaseLaws] = 80;
                 _lawChoice[inplaceSymmetricDifference] = 4;
                 _lawChoice[inplaceFlip] = 4;
- _lawChoice[inplaceSelfRemovability] = 4;
- _lawChoice[inplaceInverseRemovability] = 4;
+ _lawChoice[inplaceNaturalInversion] = 4;
+ _lawChoice[inplaceInverseExistence] = 4;
                 _lawChoice[sectionAbsorbtion] = 4;
             }
             _lawChoice.init();
@@ -582,17 +582,17 @@
             case inplaceFlip:
                 return new LawValidater<InplaceFlip<Type>, RandomGentor>;
 
- case inplaceSelfRemovability:
+ case inplaceNaturalInversion:
                                 if(is_map<Type>::value && !absorbs_neutrons<Type>::value)
- return new LawValidater<InplaceSelfRemovability<Type, inplace_plus, protonic_equal>, RandomGentor >;
+ return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, protonic_equal>, RandomGentor >;
                                 else
- return new LawValidater<InplaceSelfRemovability<Type, inplace_plus, std_equal>, RandomGentor >;
+ return new LawValidater<InplaceNaturalInversion<Type, inplace_plus, std_equal>, RandomGentor >;
 
- case inplaceInverseRemovability:
+ case inplaceInverseExistence:
                                 if(is_map<Type>::value && !absorbs_neutrons<Type>::value)
- return new LawValidater<InplaceInverseRemovability<Type, inplace_plus, protonic_equal>, RandomGentor >;
+ return new LawValidater<InplaceInverseExistence<Type, inplace_plus, protonic_equal>, RandomGentor >;
                                 else
- return new LawValidater<InplaceInverseRemovability<Type, inplace_plus, std_equal>, RandomGentor >;
+ return new LawValidater<InplaceInverseExistence<Type, inplace_plus, std_equal>, RandomGentor >;
 
             case sectionAbsorbtion:
                                 if(is_map<Type>::value && !absorbs_neutrons<Type>::value)
@@ -705,8 +705,8 @@
             case cluster_erase: return new LawValidater<BinaryPushout<typename Type::atomized_type, Type, Interval::Cluster, eraser>, RandomGentor>();
             case join_plus: return new LawValidater<BinaryPushout<Type, typename Type::joint_type, Interval::Join, inplace_plus>, RandomGentor>();
             //JODO absorb_plus holds for interval_map. For split_interval_map element_equal has to be used as equality-relation.
- //case absorb_plus: return new LawValidater<BinaryPushout<Type, typename Type::neutron_absorber_type, Interval::AbsorbNeutrons, inplace_plus>, RandomGentor>();
- //JODO doc: violated: inverse required: case absorb_minus: return new LawValidater<BinaryPushout<Type, typename Type::neutron_absorber_type, Interval::AbsorbNeutrons, inplace_minus>, RandomGentor>();
+ //case absorb_plus: return new LawValidater<BinaryPushout<Type, typename Type::partial_absorber_type, Interval::AbsorbNeutrons, inplace_plus>, RandomGentor>();
+ //JODO doc: violated: inverse required: case absorb_minus: return new LawValidater<BinaryPushout<Type, typename Type::partial_absorber_type, Interval::AbsorbNeutrons, inplace_minus>, RandomGentor>();
             default: return NULL;
             }
         }

Modified: sandbox/itl/libs/itl/doc/concepts.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/concepts.qbk (original)
+++ sandbox/itl/libs/itl/doc/concepts.qbk 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -205,7 +205,7 @@
 But you could instantiate an __itv_map__ to have
 `insert/erase` semantics this way:
 ``
-interval_map<int,int,neutron_absorber,
+interval_map<int,int,partial_absorber,
              std::less,
              inplace_identity //Combine parameter specified
> m;
@@ -228,7 +228,7 @@
 section became ['kind of nuclear] at least in wording.
 But rest assured `itl::Maps` won't contaminate your software.
 
-[h4 Remarks on Neutral Elements or Neutrons]
+[h4 Remarks on Neutral Elements]
 
 In the itl we call ['*neutral elements*] `neutrons` and all values
 that [*are not] `neutrons` we call `protons`.
@@ -250,8 +250,9 @@
                 In addition, associated neutrons that emerge from aggregations are stored.]]
 ]
 
-Note, that a neutron is defined in relation to a combiner operation. In many cases
-this relation is provided by the default parameters of itl `Maps`.
+Note, that a neutron is defined in relation to a combiner operation.
+[/ In most cases
+this relation is provided by the default parameters of itl `Maps`.]
 
 [table
 [[type] [operation] [neutron]]
@@ -260,16 +261,20 @@
 [[`set<T>`] [union] [`{}`] ]
 ]
 
-In those cases the `neutron` value is delivered by the default constructor
-of a type. But there are well known exceptions like e.g. numeric multiplication:
+In these cases the `neutron` value is delivered by the default constructor
+of the maps `CodomainT` type. But there are well known exceptions
+like e.g. numeric multiplication:
 
 [table
 [[type] [operation] [neutron]]
 [[`int`] [multiplication] [`1`] ]
 ]
 
-Therefore an itl functor implements a static function `neutron()` to make
-shure that the correct `neutron()` is used, which is used in the implementation
+Therefore itl functors,
+that serve as `Combiner` parameters of itl Maps
+implement a static function `neutron()` to make
+shure that the correct `neutron()` is used
+in the implementation
 of ['aggregate on overlap].
 ``
 inplace_times<int>::neutron() == 1
@@ -299,7 +304,7 @@
 infinite vector.
 
 The second trait is related to the representation of `neutrons` in
-the map. A itl map can be a neutron_absorber or a neutron_enricher.
+the map. An itl map can be a neutron absorber or a neutron enricher.
 
 * A neutron absorber never stores value pairs `(k,0)` that carry neutrons.
 * A neutron enricher stores value pairs `(k,0)`.
@@ -314,7 +319,7 @@
 ]
 
 
-[h4 Trait Neutron Absorber]
+[h4 Partial Neutron Absorber]
 
 From a pragmatic perspective value pairs that carry `neutrons` as
 mapped values can often be deleted. If we count, for instance,
@@ -326,20 +331,27 @@
 
 A Map that does never insert
 associated neutrons or deletes them when they emerge, is called
-__absorber__. To be a partial __absorber__ is the default setting
-for the Trait parameter. Moreover a __absorber__ is able
-to erase a pair `(x,y)` from a map `{(x,y)}` by calling
-`subtract((x,y))` or `operator - ` .
-
-``{(x,y)} - (x,y) == {}``
-
-[h4 Neutron Enricher]
-
-With a __enricher__, on the contrary, subtraction of a
-pair `(x,y)` that is in the map results in a pair `(x,0)`.
-`{(x,y)} - (x,y) == {(x,0)}`. Mapping pairs that carry
-`neutrons` may emerge as a result of computations and they can
-not be erased by subtractions, so they are /enriched/ in the map.
+neutron absorber. A partial neutron absorber (short __absorber__)
+is the default setting
+for the Trait parameter. A __absorber__ is able
+to erase a pair `(k,v)` from a map `{(k,v)}` by calling
+`subtract((k,v))` or `operator - ` .
+
+``{(k,v)} - (k,v) == {}``
+
+
+[h4 Partial Neutron Enricher]
+
+With a neutron enricher,
+on the contrary, subtraction of a
+pair `(k,v)` that is in the map results in a pair `(k,0)`.
+
+``{(k,v)} - (k,v) == {(k,0)}``
+
+Mapping pairs that carry
+`neutrons` may emerge as a result of additions or aggregations
+and they can not be erased by subtractions, so they are
+/enriched/ in the map.
 
 A neutron enricher carries the information, if values have
 been added or aggregated for certain keys and resulted in a `neutron`
@@ -349,8 +361,8 @@
 The following distinction can *not* be made for a __absorber__ map
 but it can be made for an __enricher__ map:
 [pre
-(k,y) does not exist in the map: Pair (k,y) has NOT been dealt with
-(k,0) key k carries 0 : Pair (k,y) has been dealt with resulting in y=0
+(k,v) does not exist in the map: Pair (k,v) has NOT been dealt with
+(k,0) key k carries 0 : Pair (k,v) has been dealt with resulting in y=0
 ]
 
 Sometimes this subtle distiction is needed. Then a __enricher__
@@ -358,11 +370,13 @@
 a common set of keys in order to, say, iterate synchronously
 over both maps, we need __enrichers__.
 
-[h4 Neutron Emitter]
+[h4 Total Neutron Absorber]
 
-The third neutronic Trait is called __emitter__.
+The third neutronic Trait is a total map that does not
+store value pairs with associated neutrons `(k,0)`.
+It is called total neutron absorber (short __emitter__).
 A map that is a __emitter__ is defined on every value
-of it's domain. It emits a
+of it's domain. It provides a
 neutron value for every key value, that has not been set or
 aggregated to a value unequal to the `neutron` value.
 
@@ -382,7 +396,7 @@
 and carry `neutron` values are actually stored. All value pairs,
 that are not represented carry `neutrons` via default but are not stored.
 
-['Neutronic traits] can be summarized as follows
+The traits for itl Maps can be summarized as follows
 
 [table
 [[] [] [absorbs neutrons] []]

Modified: sandbox/itl/libs/itl/doc/itl.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/itl.qbk (original)
+++ sandbox/itl/libs/itl/doc/itl.qbk 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -82,11 +82,11 @@
 [def __itl_map__ [classref boost::itl::map itl::map]]
 [def __itl_maps__ [classref boost::itl::map itl::maps]]
 
-[def __absorber__ [classref boost::itl::neutron_absorber neutron_absorber]]
-[def __enricher__ [classref boost::itl::neutron_enricher neutron_enricher]]
-[def __enrichers__ [classref boost::itl::neutron_enricher neutron_enrichers]]
-[def __emitter__ [classref boost::itl::neutron_emitter neutron_emitter]]
-[def __polluter__ [classref boost::itl::neutron_emitter neutron_polluter]]
+[def __absorber__ [classref boost::itl::partial_absorber partial_absorber]]
+[def __enricher__ [classref boost::itl::partial_enricher partial_enricher]]
+[def __enrichers__ [classref boost::itl::partial_enricher partial_enrichers]]
+[def __emitter__ [classref boost::itl::total_absorber total_absorber]]
+[def __polluter__ [classref boost::itl::total_absorber total_enricher]]
 
 [def __itv_bse_set__ [classref boost::itl::interval_base_set interval_base_set]]
 [def __e [link element_type *e*]]

Modified: sandbox/itl/libs/itl/doc/semantics.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/semantics.qbk (original)
+++ sandbox/itl/libs/itl/doc/semantics.qbk 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -9,7 +9,7 @@
 [section Semantics]
 
 In the *itl* we follow the notion, that the semantics of a ['*concept*] or an
-['*abstract data type*] can be expressed by ['*laws*]. In the *itl* we formulate
+['*abstract data type*] can be expressed by ['*laws*]. We formulate
 laws over interval containers that can be evaluated for a given
 instantiation of the variables contained in the law. The following
 pseudocode gives a shorthand notation of such a law.
@@ -53,7 +53,7 @@
 
 `Operator <` depends on the itl::container's template parameter
 `Compare` that implements a ['strict weak ordering] for the container's
-`key_type`.
+`domain_type`.
 For a given `Compare` ordering, `operator <` implements a
 lexicographical comparison on itl::containers, that uses the
 `Compare` order to establish a unique sequence of values in
@@ -99,18 +99,18 @@
 is_element_equal(w1,w2); //true: Same elements contained
 ``
 
-So for a constant `Compare` order on key elements,
-memberfuntion `contained_in` that is defined for all
+For a constant `Compare` order on key elements,
+memberfunktion `contained_in` that is defined for all
 itl::containers implements a
 [@http://en.wikipedia.org/wiki/Partially_ordered_set partial order]
 on itl::containers.
 
 ``
 with <= for contained_in,
- = for is_element_equal:
-Reflexivity<T,<= > : T a; a<=a
-Antisymmetry<T,<=,=> : T a,b; a<=b && b<=a implies a=b
-Transitivity<T,<= > : T a,b,c; a<=b && b<=c implies a<c
+ =e= for is_element_equal:
+Reflexivity<T,<= > : T a; a <= a
+Antisymmetry<T,<=,=e=> : T a,b; a <= b && b <= a implies a =e= b
+Transitivity<T,<= > : T a,b,c; a <= b && b <= c implies a <= c
 ``
 
 The induced equivalence is the equality of elements that
@@ -171,7 +171,7 @@
 
 ``
 RightNeutrality<S,-,== > : S a; a-S() == a
-SelfRemovability<S,-,== >: S a; a - a == S()
+Inversion<S,-,== >: S a; a - a == S()
 ``
 
 Summarized in the next table are laws that use `+`, `&` and `-`
@@ -181,11 +181,11 @@
 of the table.
 
 ``
- + * -
+ + & -
 Associativity == ==
-Neutrality == ==
+Neutrality == == ==
 Commutativity == ==
-SelfRemovability ==
+Inversion ==
 ``
 
 [h5 Distributivity Laws]
@@ -200,10 +200,10 @@
 Therefore they are denoted using a /variable/ equality `=v=` below.
 
 ``
- Distributivity<S,+,&,=v= > : S a,b,c; a + (b & c) =v= (a + b) * (a + c)
- Distributivity<S,&,+,=v= > : S a,b,c; a * (b + c) =v= (a * b) + (a * c)
+ Distributivity<S,+,&,=v= > : S a,b,c; a + (b & c) =v= (a + b) & (a + c)
+ Distributivity<S,&,+,=v= > : S a,b,c; a & (b + c) =v= (a & b) + (a & c)
 RightDistributivity<S,+,-,=v= > : S a,b,c; (a + b) - c =v= (a - c) + (b - c)
-RightDistributivity<S,&,-,=v= > : S a,b,c; (a * b) - c =v= (a - c) * (b - c)
+RightDistributivity<S,&,-,=v= > : S a,b,c; (a & b) - c =v= (a - c) & (b - c)
 ``
 
 The next table shows the relationship between
@@ -407,11 +407,11 @@
   accounts for value pairs that that carry values unequal to the `neutron` value.
 
 Solution (1) led to the introduction of map traits, particularly trait
-neutron_absorber trait which is the default setting in all itl's map
+partial_absorber trait which is the default setting in all itl's map
 templates.
 
 Solution (2), is applied to check the semantics of itl::Maps for the
-neutron_enricher trait that does not delete value pairs that carry
+partial_enricher trait that does not delete value pairs that carry
 neutrons. Protonic equality is implemented by a non member function
 called `is_protonic_equal`. Througout this chapter
 protonic equality in pseudocode and law denotations is denoted
@@ -435,43 +435,43 @@
 Associativity<C,*,== >: C a,b,c; a&(b&c) ==(a&b)&c
 Commutativity<C,*,== >: C a,b; a&b == b&a
 
-RightNeutrality<C,-,== > : C a; a-C() == a
-SelfRemovability<C,-,=v= >: C a; a - a =v= C()
+RightNeutrality<C,-,== >: C a; a-C() == a
+Inversion<C,-,=v= > : C a; a - a =v= C()
 ``
 
 All the fundamental laws could be validated for all
 itl Maps in their instantiation as Maps of Sets or Collectors.
-As expected SelfRmovability only holds for protonic equality,
-if the map is not a `neutron_absorber`.
+As expected Inversion only holds for protonic equality,
+if the map is not a `partial_absorber`.
 
 ``
- + & -
-Associativity == ==
-Neutrality == ==
-Commutativity == ==
-SelfRemovability neutron_absorber ==
- neutron_enricher =p=
+ + & -
+Associativity == ==
+Neutrality == == ==
+Commutativity == ==
+Inversion partial_absorber ==
+ partial_enricher =p=
 ``
 
 [h5 Distributivity Laws]
 
 ``
- Distributivity<C,+,&,=v= > : C a,b,c; a + (b & c) =v= (a + b) * (a + c)
- Distributivity<C,&,+,=v= > : C a,b,c; a * (b + c) =v= (a * b) + (a * c)
+ Distributivity<C,+,&,=v= > : C a,b,c; a + (b & c) =v= (a + b) & (a + c)
+ Distributivity<C,&,+,=v= > : C a,b,c; a & (b + c) =v= (a & b) + (a & c)
 RightDistributivity<C,+,-,=v= > : C a,b,c; (a + b) - c =v= (a - c) + (b - c)
-RightDistributivity<C,&,-,=v= > : C a,b,c; (a * b) - c =v= (a - c) * (b - c)
+RightDistributivity<C,&,-,=v= > : C a,b,c; (a & b) - c =v= (a - c) & (b - c)
 ``
 
 Results for the distributivity laws are almost identical to
 the validation of sets except that
-for a `neutron_enricher map` the law `(a * b) - c == (a - c) * (b - c)`
+for a `partial_enricher map` the law `(a & b) - c == (a - c) & (b - c)`
 holds for lexicographical equality.
 
 ``
                                                    +,& &,+
      Distributivity joining == ==
- splitting neutron_absorber =e= =e=
- neutron_enricher =e= ==
+ splitting partial_absorber =e= =e=
+ partial_enricher =e= ==
                      
                                                    +,- &,-
 RightDistributivity joining == ==
@@ -481,7 +481,7 @@
 [h5 DeMorgan's Law and Symmetric Difference]
 
 ``
-DeMorgan<C,+,&,=v= > : C a,b,c; a - (b + c) =v= (a - b) * (a - c)
+DeMorgan<C,+,&,=v= > : C a,b,c; a - (b + c) =v= (a - b) & (a - c)
 DeMorgan<C,&,+,=v= > : C a,b,c; a - (b & c) =v= (a - b) + (a - c)
 ``
 
@@ -565,8 +565,8 @@
 
 [table
 [[Trait] [CodomainT as number] [CodomainT more abstract] [Concept for Quanifier Map]]
-[[emits_neutrons] [signed number] [commutative group] [InfiniteVector]]
-[[!emits_neutrons] [unsigned number] [commutative monoid] [hybrid type]]
+[[is_total] [signed number] [commutative group] [InfiniteVector]]
+[[!is_total] [unsigned number] [commutative monoid] [hybrid type]]
 ]
 
 [h5 Intersection on Quantifiers]
@@ -631,26 +631,26 @@
 Commutativity<Q,*,== >: Q a,b; a&b == b&a
 
 RightNeutrality<Q,-,== > : Q a; a-Q() == a
-SelfRemovability<Q,-,=v= >: Q a; a - a =v= Q()
+Inversion<Q,-,=v= >: Q a; a - a =v= Q()
 ``
 
 For a `Quantifier` the same basic laws apply that are
 valid for `Collectors`:
 
 ``
- + & -
-Associativity == ==
-Neutrality == ==
-Commutativity == ==
-SelfRemovability absorbs_neutrons ==
- enriches_neutrons =p=
+ + & -
+Associativity == ==
+Neutrality == ==
+Commutativity == ==
+Inversion absorbs_neutrons ==
+ enriches_neutrons =p=
 ``
 
 In addition also symmetrical difference is valid for
-`Qunatifiers` and the
+`Quantifiers` and the
 modified `operator &`.
 ``
-SymmetricDifference<Q,== > : Q a,b,c; (a + b) - (a * b) == (a - b) + (b - a)
+SymmetricDifference<Q,== > : Q a,b,c; (a + b) - (a & b) == (a - b) + (b - a)
 ``
 For a `TotalQuantifier` `Qt` symmetrical difference degenerates to
 a trivial form since `operator &` and `operator +` become identical
@@ -703,7 +703,7 @@
 [[`Map<D,Monoid>`] [`Modoid`] [] [`interval_map<int,string>`]]
 [[`Map<D,Set,Trait>`] [`Set`] [`Trait::absorbs_neutrons`][`interval_map<int,itl::set<int> >`]]
 [[`Map<D,CommutativeMonoid>`][`CommutativeMonoid`][] [`interval_map<int,unsigned int>`]]
-[[`Map<D,CommutativeGroup>`] [`CommutativeGroup`] [`Trait::emits_neutrons`] [`interval_map<int,int,neutron_emitter>`]]
+[[`Map<D,CommutativeGroup>`] [`CommutativeGroup`] [`Trait::is_total`] [`interval_map<int,int,total_absorber>`]]
 ]
 
 [endsect][/ Concept Induction]

Modified: sandbox/itl/libs/itl/example/boost_party/boost_party.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/boost_party/boost_party.cpp (original)
+++ sandbox/itl/libs/itl/example/boost_party/boost_party.cpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -68,7 +68,7 @@
 typedef interval_map<ptime, GuestSetT> BoostPartyAttendenceHistoryT;
 
 // A party's height shall be defined as the maximum height of all guests ;-)
-typedef interval_map<ptime, int, neutron_absorber, less, inplace_max > BoostPartyHeightHistoryT;
+typedef interval_map<ptime, int, partial_absorber, less, inplace_max > BoostPartyHeightHistoryT;
 
 void boost_party()
 {

Modified: sandbox/itl/libs/itl/test/test_interval_map_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_shared.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -9,7 +9,7 @@
 #define __test_itl_interval_map_shared_h_JOFA_081005__
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -158,7 +158,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -221,7 +221,7 @@
 
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -276,7 +276,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -309,7 +309,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -360,7 +360,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -413,7 +413,7 @@
 
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -457,7 +457,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -498,7 +498,7 @@
 
 // Test for nontrivial intersection of interval maps with intervals and values
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -605,7 +605,7 @@
 
 // Test for nontrivial erasure of interval maps with intervals and interval sets
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -722,7 +722,7 @@
 
 // Test first_collision
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -794,7 +794,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -818,7 +818,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -845,7 +845,7 @@
 }
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -874,7 +874,7 @@
 
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -926,7 +926,7 @@
 
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
@@ -975,7 +975,7 @@
 
 
 template <template<class T, class U,
- class Traits = neutron_absorber,
+ class Traits = partial_absorber,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
                    ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
                    ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),

Modified: sandbox/itl/libs/itl/test/test_laws.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_laws.hpp (original)
+++ sandbox/itl/libs/itl/test/test_laws.hpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -145,7 +145,7 @@
 DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(caret, ^ );
 
 //------------------------------------------------------------------------------
-// Inversion
+// InplaceNaturalInversion
 //------------------------------------------------------------------------------
 
 #define DEFINE_INVERSION_CHECK_WRT_EQUAL(plus_tag, plus_sign) \

Modified: sandbox/itl/libs/itl/test/test_quantifier_map/test_quantifier_map_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_quantifier_map/test_quantifier_map_shared.cpp (original)
+++ sandbox/itl/libs/itl/test/test_quantifier_map/test_quantifier_map_shared.cpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -11,19 +11,19 @@
 //------------------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, neutron_absorber, interval_map>();}
+{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_monoid_et_4_bicremental_types, T, bicremental_types)
-{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, neutron_absorber, interval_map>();}
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, partial_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, neutron_absorber, interval_map>();}
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
-{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, neutron_absorber, interval_map>();}
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, partial_absorber, interval_map>();}
 
 
 //------------------------------------------------------------------------------
@@ -31,21 +31,21 @@
 //------------------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_monoid_plus_4_bicremental_types_ta, T, bicremental_types)
-{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, neutron_emitter, interval_map>();}
+{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, total_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_monoid_et_4_bicremental_types_ta, T, bicremental_types)
-{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, neutron_emitter, interval_map>();}
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, total_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_abelian_monoid_plus_4_bicremental_types_ta, T, bicremental_types)
-{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, neutron_emitter, interval_map>();}
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_abelian_monoid_et_4_bicremental_types_ta, T, bicremental_types)
-{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, neutron_emitter, interval_map>();}
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, total_absorber, interval_map>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_quantifier_map_check_abelian_group_plus_4_bicremental_types_ta, T, bicremental_types)
-{ quantifier_map_check_abelian_group_plus_4_bicremental_types<T, int, neutron_emitter, interval_map>();}
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<T, int, total_absorber, interval_map>();}
 

Modified: sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp
==============================================================================
--- sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp (original)
+++ sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -252,7 +252,7 @@
 
 void misc_test()
 {
- typedef interval_map<int,int,neutron_enricher> MapT;
+ typedef interval_map<int,int,partial_enricher> MapT;
         MapT m;
         m += MapT::value_type(interval<int>::rightopen(1,3), 1);
         cout << m << endl;

Modified: sandbox/itl/libs/validate/example/labat_single/labat_single.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_single/labat_single.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_single/labat_single.cpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -47,45 +47,45 @@
     //map_cluster_star_pushout.setTrialsCount(1000);
     //map_cluster_star_pushout.run();
 
- //typedef InplaceSymmetricDifference<split_interval_map<int, int, neutron_emitter >, std_equal> TestLawT;
+ //typedef InplaceSymmetricDifference<split_interval_map<int, int, total_absorber >, std_equal> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
         //test_law.run();
 
         //typedef InplaceDistributivity
- // <split_interval_map<int, itl::set<int>, neutron_absorber >,
+ // <split_interval_map<int, itl::set<int>, partial_absorber >,
         // inplace_et, inplace_plus, itl::std_equal> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
- //typedef InplaceSelfRemovability
- // <split_interval_map<int, itl::set<int>, neutron_emitter >,
+ //typedef InplaceNaturalInversion
+ // <split_interval_map<int, itl::set<int>, total_absorber >,
         // itl::inplace_plus, itl::protonic_equal> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
         //typedef InplaceAssociativity
- // <split_interval_map<int, int, neutron_emitter >, inplace_et> TestLawT;
+ // <split_interval_map<int, int, total_absorber >, inplace_et> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
         //typedef InplaceCommutativity
- // <split_interval_map<int, int, neutron_emitter>, inplace_plus> TestLawT;
+ // <split_interval_map<int, int, total_absorber>, inplace_plus> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
         //typedef ProtonicEquality
- // <split_interval_map<int, int, neutron_enricher > > TestLawT;
+ // <split_interval_map<int, int, partial_enricher > > TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
- //typedef InplaceInverseRemovability
- // <split_interval_map<int, int, neutron_emitter>, inplace_plus> TestLawT;
+ //typedef InplaceInverseExistence
+ // <split_interval_map<int, int, total_absorber>, inplace_plus> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
         typedef InplaceFlip
- <split_interval_map<int, int, neutron_polluter > > TestLawT;
+ <split_interval_map<int, int, total_enricher > > TestLawT;
         LawValidater<TestLawT, RandomGentor> test_law;
         test_law.setTrialsCount(10000);
 

Modified: sandbox/itl/libs/validate/example/labatea/labatea.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labatea/labatea.cpp (original)
+++ sandbox/itl/libs/validate/example/labatea/labatea.cpp 2009-01-29 03:47:23 EST (Thu, 29 Jan 2009)
@@ -57,35 +57,35 @@
     //map_cluster_star_pushout.setTrialsCount(1000);
     //map_cluster_star_pushout.run();
 
- //typedef InplaceSymmetricDifference<interval_map<int, itl::set<int>, neutron_emitter_and_enricher >, std_equal> TestLawT;
+ //typedef InplaceSymmetricDifference<interval_map<int, itl::set<int>, total_enricher >, std_equal> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
         //test_law.run();
 
         //typedef InplaceDistributivity
- // <split_interval_map<int, itl::set<int>, neutron_absorber >,
+ // <split_interval_map<int, itl::set<int>, partial_absorber >,
         // inplace_et, inplace_plus, itl::std_equal> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
- typedef InplaceSelfRemovability
- <split_interval_map<int, itl::set<int>, neutron_emitter >,
+ typedef InplaceNaturalInversion
+ <split_interval_map<int, itl::set<int>, total_absorber >,
                 itl::inplace_plus, itl::protonic_equal> TestLawT;
         LawValidater<TestLawT, RandomGentor> test_law;
         test_law.setTrialsCount(1000);
 
         //typedef InplaceAssociativity
- // <interval_map<int, int, neutron_absorber >, inplace_plus> TestLawT;
+ // <interval_map<int, int, partial_absorber >, inplace_plus> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
         //typedef InplaceCommutativity
- // <split_interval_map<int, int, neutron_emitter>, inplace_plus> TestLawT;
+ // <split_interval_map<int, int, total_absorber>, inplace_plus> TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 
         //typedef ProtonicEquality
- // <split_interval_map<int, int, neutron_enricher > > TestLawT;
+ // <split_interval_map<int, int, partial_enricher > > TestLawT;
         //LawValidater<TestLawT, RandomGentor> test_law;
         //test_law.setTrialsCount(1000);
 


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