|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r60791 - in sandbox/itl: boost/itl boost/itl/detail boost/itl/type_traits boost/validate/driver libs/itl/test libs/itl/test/test_casual_ libs/validate/example/labat_signed_quantifier_ libs/validate/example/labat_single_ libs/validate/example/labat_unsigned_quantifier_
From: afojgo_at_[hidden]
Date: 2010-03-23 08:08:41
Author: jofaber
Date: 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
New Revision: 60791
URL: http://svn.boost.org/trac/boost/changeset/60791
Log:
Fixes of 2 Bugs found by John Reid in the review:
(1) itl::infinity<T>::value checks T for existence of an infinity value and uses max otherwise.
(2) Template parameter Section is now defaulted with functor template itl::inter_section,
that chooses the right functor dependent on the CodomainT template parameter. For two interval_maps
a, b the expression (a & b) will now compile for most, if not all codomain_types that have some
reasonable application.
Added:
sandbox/itl/boost/itl/type_traits/infinity.hpp (contents, props changed)
sandbox/itl/boost/itl/type_traits/is_numeric.hpp (contents, props changed)
Text files modified:
sandbox/itl/boost/itl/detail/interval_set_algo.hpp | 2
sandbox/itl/boost/itl/functors.hpp | 114 ++++++++++++++++++++++++---------------
sandbox/itl/boost/itl/interval.hpp | 3
sandbox/itl/boost/itl/interval_base_map.hpp | 5 +
sandbox/itl/boost/itl/interval_map.hpp | 2
sandbox/itl/boost/itl/map.hpp | 2
sandbox/itl/boost/itl/rational.hpp | 9 +++
sandbox/itl/boost/itl/split_interval_map.hpp | 2
sandbox/itl/boost/itl/type_traits/has_inverse.hpp | 5 +
sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp | 28 ++++----
sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp | 24 ++++----
sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp | 25 +++++++-
sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp | 16 +++++
sandbox/itl/libs/itl/test/test_functions.hpp | 4
sandbox/itl/libs/itl/test/test_interval_map_shared.hpp | 50 ++++++++--------
sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp | 21 ++++---
sandbox/itl/libs/itl/test/test_interval_set_shared.hpp | 4
sandbox/itl/libs/itl/test/test_itl_map.hpp | 4
sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp | 16 ++--
sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp | 16 ++--
sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp | 25 +++++++-
sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp | 1
sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp | 7 +
sandbox/itl/libs/validate/example/labat_unsigned_quantifier_/vc9_labat_unsigned_quantifier.vcproj | 4 +
24 files changed, 243 insertions(+), 146 deletions(-)
Modified: sandbox/itl/boost/itl/detail/interval_set_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_set_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_set_algo.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -30,7 +30,7 @@
ITL_const_FORALL(typename IntervalContainerT, it, object)
{
interval_size = continuous_interval<interval_type>::cardinality(IntervalContainerT::key_value(it));
- if(interval_size == std::numeric_limits<size_type>::infinity())
+ if(interval_size == infinity<size_type>::value())
return interval_size;
else
size += interval_size;
Modified: sandbox/itl/boost/itl/functors.hpp
==============================================================================
--- sandbox/itl/boost/itl/functors.hpp (original)
+++ sandbox/itl/boost/itl/functors.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -10,8 +10,10 @@
#include <functional>
#include <boost/type_traits.hpp>
+#include <boost/mpl/if.hpp>
#include <boost/itl/type_traits/neutron.hpp>
#include <boost/itl/type_traits/unon.hpp>
+#include <boost/itl/type_traits/is_set.hpp>
namespace boost{namespace itl
{
@@ -33,6 +35,7 @@
template <typename Type> struct inplace_identity
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_identity<Type> type;
void operator()(Type& object, const Type& operand)const{}
};
@@ -44,6 +47,8 @@
template <typename Type> struct inplace_erasure
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_erasure<Type> type;
+
void operator()(Type& object, const Type& operand)const
{
if(object == operand)
@@ -59,7 +64,7 @@
template <typename Type> struct inplace_plus
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_plus<Type> type;
void operator()(Type& object, const Type& operand)const
{ object += operand; }
@@ -74,7 +79,8 @@
template <typename Type> struct inplace_minus
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_minus<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ object -= operand; }
};
@@ -86,7 +92,7 @@
template <typename Type> struct inplace_bit_add
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_bit_add<Type> type;
void operator()(Type& object, const Type& operand)const
{ object |= operand; }
@@ -101,7 +107,8 @@
template <typename Type> struct inplace_bit_subtract
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_bit_subtract<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ object &= ~operand; }
@@ -115,7 +122,7 @@
template <typename Type> struct inplace_bit_and
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_bit_and<Type> type;
void operator()(Type& object, const Type& operand)const
{ object &= operand; }
@@ -128,7 +135,8 @@
template <typename Type> struct inplace_bit_xor
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_bit_xor<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ object ^= operand; }
@@ -139,30 +147,12 @@
template <typename Type> struct inplace_et
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_et<Type> type;
void operator()(Type& object, const Type& operand)const
{ object &= operand; }
};
- template <> struct inplace_et<double>
- : public neutron_based_inplace_combine<double>
- {
- typedef double type;
-
- void operator()(type& object, type operand)const
- { object += operand; }
- };
-
- template <> struct inplace_et<float>
- : public neutron_based_inplace_combine<float>
- {
- typedef float type;
-
- void operator()(type& object, type operand)const
- { object += operand; }
- };
-
template<>
inline std::string unary_template_to_string<inplace_et>::apply() { return "&="; }
@@ -170,31 +160,14 @@
template <typename Type> struct inplace_caret
: public neutron_based_inplace_combine<Type>
{
- typedef Type type;
+ typedef inplace_caret<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ object ^= operand; }
static Type neutron() { return boost::itl::neutron<Type>::value(); }
};
- template <> struct inplace_caret<double>
- : public neutron_based_inplace_combine<double>
- {
- typedef double type;
-
- void operator()(type& object, type operand)const
- { object -= operand; }
- };
-
- template <> struct inplace_caret<float>
- : public neutron_based_inplace_combine<float>
- {
- typedef float type;
-
- void operator()(type& object, type operand)const
- { object -= operand; }
- };
-
template<>
inline std::string unary_template_to_string<inplace_caret>::apply() { return "^="; }
@@ -202,6 +175,8 @@
template <typename Type> struct inplace_insert
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_insert<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ insert(object,operand); }
@@ -215,6 +190,8 @@
template <typename Type> struct inplace_erase
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_erase<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ erase(object,operand); }
@@ -228,6 +205,8 @@
template <typename Type> struct inplace_star
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_star<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ object *= operand; }
@@ -241,6 +220,8 @@
template <typename Type> struct inplace_slash
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_slash<Type> type;
+
void operator()(Type& object, const Type& operand)const
{ object /= operand; }
@@ -254,6 +235,8 @@
template <typename Type> struct inplace_max
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_max<Type> type;
+
void operator()(Type& object, const Type& operand)const
{
if(object < operand)
@@ -270,6 +253,8 @@
template <typename Type> struct inplace_min
: public neutron_based_inplace_combine<Type>
{
+ typedef inplace_min<Type> type;
+
void operator()(Type& object, const Type& operand)const
{
if(object > operand)
@@ -283,6 +268,25 @@
inline std::string unary_template_to_string<inplace_min>::apply() { return "min="; }
//--------------------------------------------------------------------------
+ // Inter_section functor
+ //--------------------------------------------------------------------------
+ template<class Type> struct inter_section
+ : public neutron_based_inplace_combine<Type>
+ {
+ typedef typename boost::mpl::
+ if_<is_set<Type>,
+ itl::inplace_et<Type>,
+ itl::inplace_plus<Type>
+ >::type
+ type;
+
+ void operator()(Type& object, const Type& operand)const
+ {
+ type()(object, operand);
+ }
+ };
+
+ //--------------------------------------------------------------------------
// Inverse functor
//--------------------------------------------------------------------------
template<class Functor> struct inverse;
@@ -337,6 +341,27 @@
//--------------------------------------------------------------------------
+ // Inverse inter_section functor
+ //--------------------------------------------------------------------------
+ template<class Type>
+ struct inverse<itl::inter_section<Type> >
+ : public neutron_based_inplace_combine<Type>
+ {
+ typedef typename boost::mpl::
+ if_<is_set<Type>,
+ itl::inplace_caret<Type>,
+ itl::inplace_minus<Type>
+ >::type
+ type;
+
+ void operator()(Type& object, const Type& operand)const
+ {
+ type()(object, operand);
+ }
+ };
+
+
+ //--------------------------------------------------------------------------
// Positive or negative functor trait
//--------------------------------------------------------------------------
@@ -440,7 +465,6 @@
}
};
-
}} // namespace itl boost
#endif
Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -25,6 +25,7 @@
#include <boost/itl/detail/design_config.hpp>
#include <boost/itl/type_traits/neutron.hpp>
#include <boost/itl/type_traits/unon.hpp>
+#include <boost/itl/type_traits/infinity.hpp>
#include <boost/itl/type_traits/is_continuous.hpp>
#include <boost/itl/type_traits/difference.hpp>
#include <boost/itl/type_traits/size.hpp>
@@ -478,7 +479,7 @@
else if(x.is(itl::closed_bounded) && IntervalT::domain_equal(x.lower(), x.upper()))
return itl::unon<SizeT>::value();
else
- return std::numeric_limits<SizeT>::infinity();
+ return infinity<SizeT>::value();
}
static typename IntervalT::difference_type
Modified: sandbox/itl/boost/itl/interval_base_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_map.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -56,7 +56,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, CodomainT),
template<class,ITL_COMPARE>class Interval = itl::interval,
ITL_ALLOC Alloc = std::allocator
>
@@ -408,7 +408,8 @@
/** Subtraction of an interval value pair from the map. */
SubType& subtract(const segment_type& interval_value_pair)
{
- if(Traits::is_total && has_inverse<codomain_type>::value)
+ using namespace type_traits;
+ if(ice_and<Traits::is_total, has_inverse<codomain_type>::value>::value)
that()->template add_<inverse_codomain_combine>(interval_value_pair);
else
that()->template subtract_<inverse_codomain_combine>(interval_value_pair);
Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -35,7 +35,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, CodomainT),
template<class,ITL_COMPARE>class Interval = itl::interval,
ITL_ALLOC Alloc = std::allocator
>
Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -87,7 +87,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, CodomainT),
ITL_ALLOC Alloc = std::allocator
>
class map: private ITL_IMPL_SPACE::map<DomainT, CodomainT, ITL_COMPARE_DOMAIN(Compare,DomainT),
Modified: sandbox/itl/boost/itl/rational.hpp
==============================================================================
--- sandbox/itl/boost/itl/rational.hpp (original)
+++ sandbox/itl/boost/itl/rational.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -27,6 +27,7 @@
#endif
#include <boost/itl/type_traits/is_continuous.hpp>
+#include <boost/itl/type_traits/has_inverse.hpp>
namespace boost{namespace itl
{
@@ -36,6 +37,14 @@
typedef is_continuous<boost::rational<Integral> > type;
BOOST_STATIC_CONSTANT(bool, value = true);
};
+
+ template<class Integral>
+ struct has_inverse<boost::rational<Integral> >
+ {
+ typedef has_inverse<boost::rational<Integral> > type;
+ BOOST_STATIC_CONSTANT(bool, value = (is_signed<Integral>::value));
+ };
+
}} // namespace itl boost
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 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -31,7 +31,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, CodomainT),
template<class,ITL_COMPARE>class Interval = itl::interval,
ITL_ALLOC Alloc = std::allocator
>
Modified: sandbox/itl/boost/itl/type_traits/has_inverse.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/has_inverse.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/has_inverse.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -9,6 +9,7 @@
#define BOOST_ITL_TYPE_TRAITS_HAS_INVERSE_HPP_JOFA_090205
#include <boost/type_traits/is_signed.hpp>
+#include <boost/type_traits/is_floating_point.hpp>
namespace boost{ namespace itl
{
@@ -16,7 +17,9 @@
template <class Type> struct has_inverse
{
typedef has_inverse<Type> type;
- BOOST_STATIC_CONSTANT(bool, value = (is_signed<Type>::value));
+ BOOST_STATIC_CONSTANT(bool,
+ value = (type_traits::ice_or<is_signed<Type>::value,
+ is_floating_point<Type>::value>::value));
};
}} // namespace boost itl
Added: sandbox/itl/boost/itl/type_traits/infinity.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/type_traits/infinity.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -0,0 +1,59 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ITL_TYPE_TRAITS_INFINITY_HPP_JOFA_100322
+#define BOOST_ITL_TYPE_TRAITS_INFINITY_HPP_JOFA_100322
+
+#include <string>
+#include <boost/itl/type_traits/is_numeric.hpp>
+#include <boost/mpl/if.hpp>
+
+namespace boost{ namespace itl
+{
+
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable:4127) // conditional expression is constant
+#endif
+
+ template <class Type> struct numeric_infinity
+ {
+ typedef numeric_infinity type;
+
+ static Type value()
+ {
+ BOOST_CONCEPT_ASSERT((is_numeric<Type>));
+ if(std::numeric_limits<Type>::has_infinity)
+ return std::numeric_limits<Type>::infinity();
+ else
+ return (std::numeric_limits<Type>::max)();
+ }
+ };
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+ template <class Type> struct infinity
+ {
+ typedef infinity type;
+
+ static Type value()
+ {
+ return
+ mpl::if_<is_numeric<Type>,
+ numeric_infinity<Type>,
+ neutron<Type> >::type::value();
+ }
+ };
+
+}} // namespace boost itl
+
+#endif
+
+
Added: sandbox/itl/boost/itl/type_traits/is_numeric.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/type_traits/is_numeric.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -0,0 +1,33 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ITL_TYPE_TRAITS_IS_NUMERIC_HPP_JOFA_100322
+#define BOOST_ITL_TYPE_TRAITS_IS_NUMERIC_HPP_JOFA_100322
+
+#include <string>
+#include <complex>
+
+namespace boost{ namespace itl
+{
+ template <class Type> struct is_numeric
+ {
+ typedef is_numeric type;
+ BOOST_STATIC_CONSTANT(bool, value = (0 < std::numeric_limits<Type>::digits));
+ };
+
+ template <class Type>
+ struct is_numeric<std::complex<Type> >
+ {
+ typedef is_numeric type;
+ BOOST_STATIC_CONSTANT(bool, value = true);
+ };
+
+}} // namespace boost itl
+
+#endif
+
+
Modified: sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -49,8 +49,8 @@
_codomainChoice.setSize(CodomainType::CodomainTypes_size);
_codomainChoice.setMaxWeights(100);
- _codomainChoice[CodomainType::Nat] = 0;
- _codomainChoice[CodomainType::Int] = 100;
+ _codomainChoice[CodomainType::Nat] = 100;
+ _codomainChoice[CodomainType::Int] = 0;
_codomainChoice[CodomainType::Double] = 0;
_codomainChoice[CodomainType::set_int] = 0;
setCodomainTypeNames();
@@ -104,30 +104,30 @@
//-----------------------------------------------------------------
case RootType::itl_map: {
switch(neutronizerChoice) {
- case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<itl::map<int, int,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<itl::map<int, int,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<itl::map<double,int,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<itl::map<double,int,total_enricher > >;
+ case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<itl::map<int, int, partial_absorber> >;
+ case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<itl::map<int, double, partial_enricher> >;
+ case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<itl::map<double, int, total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<itl::map<double, double, 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::partial_absorber: return new signed_quantifier_validater<interval_map<double,int,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<interval_map<double,int,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<interval_map<int, int,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<interval_map<int, int,total_enricher > >;
+ case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<interval_map<double, double, partial_absorber> >;
+ case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<interval_map<double, int, partial_enricher> >;
+ case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<interval_map<int, double, total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<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::partial_absorber: return new signed_quantifier_validater<split_interval_map<double,int,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<split_interval_map<int, int,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<split_interval_map<double,int,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<split_interval_map<int, int,total_enricher > >;
+ case NeutronHandlerType::partial_absorber: return new signed_quantifier_validater<split_interval_map<double, int, partial_absorber> >;
+ case NeutronHandlerType::partial_enricher: return new signed_quantifier_validater<split_interval_map<int, double, partial_enricher> >;
+ case NeutronHandlerType::total_absorber: return new signed_quantifier_validater<split_interval_map<double, int, total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new signed_quantifier_validater<split_interval_map<int, double, 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/driver/unsigned_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -103,30 +103,30 @@
//-----------------------------------------------------------------
case RootType::itl_map: {
switch(neutronizerChoice) {
- case NeutronHandlerType::partial_absorber: return new unsigned_quantifier_validater<itl::map<double,nat,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new unsigned_quantifier_validater<itl::map<double,nat,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new unsigned_quantifier_validater<itl::map<int,nat,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new unsigned_quantifier_validater<itl::map<int,nat,total_enricher > >;
+ case NeutronHandlerType::partial_absorber: return new unsigned_quantifier_validater<itl::map<double,double,partial_absorber> >;
+ case NeutronHandlerType::partial_enricher: return new unsigned_quantifier_validater<itl::map<double,nat, partial_enricher> >;
+ case NeutronHandlerType::total_absorber: return new unsigned_quantifier_validater<itl::map<int, double,total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new unsigned_quantifier_validater<itl::map<int, nat, 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::partial_absorber: return new unsigned_quantifier_validater<interval_map<int,nat,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new unsigned_quantifier_validater<interval_map<int,nat,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new unsigned_quantifier_validater<interval_map<double,nat,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new unsigned_quantifier_validater<interval_map<double,nat,total_enricher > >;
+ case NeutronHandlerType::partial_absorber: return new unsigned_quantifier_validater<interval_map<int, nat, partial_absorber> >;
+ case NeutronHandlerType::partial_enricher: return new unsigned_quantifier_validater<interval_map<int, double,partial_enricher> >;
+ case NeutronHandlerType::total_absorber: return new unsigned_quantifier_validater<interval_map<double,nat, total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new unsigned_quantifier_validater<interval_map<double,double,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::partial_absorber: return new unsigned_quantifier_validater<split_interval_map<int, nat,partial_absorber> >;
- case NeutronHandlerType::partial_enricher: return new unsigned_quantifier_validater<split_interval_map<double,nat,partial_enricher> >;
- case NeutronHandlerType::total_absorber: return new unsigned_quantifier_validater<split_interval_map<int, nat,total_absorber > >;
- case NeutronHandlerType::total_enricher: return new unsigned_quantifier_validater<split_interval_map<double,nat,total_enricher > >;
+ case NeutronHandlerType::partial_absorber: return new unsigned_quantifier_validater<split_interval_map<int, nat, partial_absorber> >;
+ case NeutronHandlerType::partial_enricher: return new unsigned_quantifier_validater<split_interval_map<double,nat, partial_enricher> >;
+ case NeutronHandlerType::total_absorber: return new unsigned_quantifier_validater<split_interval_map<int, double,total_absorber > >;
+ case NeutronHandlerType::total_enricher: return new unsigned_quantifier_validater<split_interval_map<double,double,total_enricher > >;
default: return choiceError(ITL_LOCATION("\nRootType::split_interval_map: neutronizerChoice:\n"), neutronizerChoice, _neutronizerChoice);
}//switch neutronizerChoice
}//case split_interval_map
Modified: sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -25,12 +25,21 @@
BOOST_AUTO_TEST_CASE
(fastest_itl_total_quantifier_map_check_abelian_monoid_et_4_bicremental_types)
-{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, int, total_absorber, INTERVAL_MAP>();}
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, float, total_absorber, INTERVAL_MAP>();}
// (0-x) + x = 0 | total absorber
BOOST_AUTO_TEST_CASE
-(fastest_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_types)
+(fastest_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_domain_and_discrete_codomain)
{ quantifier_map_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_1)
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, double, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_2)
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, boost::rational<int>, total_absorber, INTERVAL_MAP>();}
+
//------------------------------------------------------------------------------
// total_enricher
//------------------------------------------------------------------------------
@@ -48,13 +57,21 @@
BOOST_AUTO_TEST_CASE
(fastest_itl_total_enricher_quantifier_map_check_abelian_monoid_et_4_bicremental_types)
-{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, int, total_enricher, INTERVAL_MAP>();}
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, double, total_enricher, INTERVAL_MAP>();}
// (0-x) + x =p= 0 | total absorber
BOOST_AUTO_TEST_CASE
-(fastest_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types)
+(fastest_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_domain_discrete_codomain)
{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_2, int, total_enricher, INTERVAL_MAP>();}
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_1)
+{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_3, float, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_2)
+{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_4, boost::rational<int>, total_enricher, INTERVAL_MAP>();}
+
// absorber enricher
// partial x - x == 0 x - x =p= 0 partiality of subtraction
Modified: sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp (original)
+++ sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -59,9 +59,23 @@
cout << map_a << endl;
}
+#include <limits>
+#include <complex>
BOOST_AUTO_TEST_CASE(casual)
{
- ;
+ cout << "--- limits ---\n";
+ cout << "max<char> = " << (std::numeric_limits<char>::max)() << endl;
+ cout << "max<char> = " << static_cast<int>((std::numeric_limits<char>::max)()) << endl;
+ cout << "-----------------------------------\n";
+ cout << "digits<char> = " << std::numeric_limits<char>::digits << endl;
+ cout << "digits<short> = " << std::numeric_limits<short>::digits << endl;
+ cout << "digits<float> = " << std::numeric_limits<float>::digits << endl;
+ cout << "digits<double> = " << std::numeric_limits<double>::digits << endl;
+ cout << "digits<complex<double>> = " << std::numeric_limits<std::complex<double> >::digits << endl;
+ cout << "digits<string> = " << std::numeric_limits<std::string>::digits << endl;
+
+
+ BOOST_CHECK_EQUAL(0 != itl::infinity<int>::value(), true);
}
Modified: sandbox/itl/libs/itl/test/test_functions.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_functions.hpp (original)
+++ sandbox/itl/libs/itl/test/test_functions.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -24,7 +24,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -43,7 +43,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
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 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -12,7 +12,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -161,7 +161,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -224,7 +224,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -277,7 +277,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -310,7 +310,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -352,8 +352,8 @@
is_123_5 += typename IntervalMapT::value_type(interval<T>::open(v1,v3),u1);
//USASO: unsatisfctory solution 2: not implementing mapping_type version of o=
- BOOST_CHECK_EQUAL( is_123_5.cardinality(), std::numeric_limits<size_T>::infinity() );
- BOOST_CHECK_EQUAL( is_123_5.size(), std::numeric_limits<size_T>::infinity() );
+ BOOST_CHECK_EQUAL( is_123_5.cardinality(), itl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( is_123_5.size(), itl::infinity<size_T>::value() );
BOOST_CHECK_EQUAL( is_123_5.length(), d2 );
}
@@ -362,7 +362,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -415,7 +415,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -457,7 +457,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -497,7 +497,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -539,7 +539,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -645,7 +645,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -762,7 +762,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -846,7 +846,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -872,7 +872,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -899,7 +899,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -928,7 +928,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -980,7 +980,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -1029,7 +1029,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -1068,7 +1068,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -1100,7 +1100,7 @@
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
@@ -1127,7 +1127,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -1198,7 +1198,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -1239,7 +1239,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
Modified: sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -17,7 +17,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -44,7 +44,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -74,7 +74,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -101,7 +101,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -131,7 +131,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -160,7 +160,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -193,7 +193,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -215,20 +215,23 @@
}
//------------------------------------------------------------------------------
-// (0 - x) + x =p= 0 |
+// (0 - x) + x =p= 0
//------------------------------------------------------------------------------
template <class T, class U, class Trt,
template<class T, class U,
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
>
void quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types()
{
+ // check abelian group wrt. + and inverability wrt. protonic equality =p= :
+ // (1) (IntervalMapT, +) is an abelian group and
+ // (2) The inverability law: (0 - x) + x =p= 0 holds.
typedef IntervalMap<T,U,Trt> IntervalMapT;
IntervalMapT map_a, map_b, map_c;
Modified: sandbox/itl/libs/itl/test/test_interval_set_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_shared.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -292,8 +292,8 @@
is_123_5 = is_1_3_5;
is_123_5 += interval<T>::open(v1,v3);
- BOOST_CHECK_EQUAL( is_123_5.cardinality(), std::numeric_limits<size_T>::infinity() );
- BOOST_CHECK_EQUAL( is_123_5.size(), std::numeric_limits<size_T>::infinity() );
+ BOOST_CHECK_EQUAL( is_123_5.cardinality(), itl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( is_123_5.size(), itl::infinity<size_T>::value() );
BOOST_CHECK_EQUAL( is_123_5.length(), d2 );
}
Modified: sandbox/itl/libs/itl/test/test_itl_map.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_map.hpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_map.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -14,7 +14,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -47,7 +47,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
Modified: sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp (original)
+++ sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -17,7 +17,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -50,7 +50,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -86,7 +86,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -119,7 +119,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -155,7 +155,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -190,7 +190,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -229,7 +229,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -264,7 +264,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
Modified: sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -17,7 +17,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -44,7 +44,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -74,7 +74,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -101,7 +101,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -131,7 +131,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -160,7 +160,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -193,7 +193,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
@@ -222,7 +222,7 @@
class Traits = Trt,
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),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inter_section, U),
template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap
Modified: sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -17,7 +17,7 @@
BOOST_AUTO_TEST_CASE_TEMPLATE
(test_itl_total_quantifier_map_check_monoid_et_4_bicremental_types, T, bicremental_types)
-{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, double, total_absorber, INTERVAL_MAP>();}
BOOST_AUTO_TEST_CASE_TEMPLATE
(test_itl_total_quantifier_map_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
@@ -29,8 +29,17 @@
// (0-x) + x = 0 | total absorber
BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_types, T, bicremental_types)
+(test_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_domain_and_discrete_codomain, T, bicremental_types)
{ quantifier_map_check_abelian_group_plus_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_1, T, bicremental_types)
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<T, float, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_2, T, bicremental_types)
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<T, boost::rational<int>, total_absorber, INTERVAL_MAP>();}
+
//------------------------------------------------------------------------------
// total_enricher
//------------------------------------------------------------------------------
@@ -48,13 +57,21 @@
BOOST_AUTO_TEST_CASE_TEMPLATE
(test_itl_total_enricher_quantifier_map_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
-{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, float, total_enricher, INTERVAL_MAP>();}
// (0-x) + x =p= 0 | total absorber
BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types, T, bicremental_types)
+(test_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_discrete_codomain, T, bicremental_types)
{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_continuous_codomain_1, T, bicremental_types)
+{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<T, double, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_continuous_codomain_2, T, bicremental_types)
+{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<T, boost::rational<int>, total_enricher, INTERVAL_MAP>();}
+
// absorber enricher
// partial x - x == 0 x - x =p= 0 partiality of subtraction
Modified: sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -26,6 +26,7 @@
">> terminate by typing <CTRL>C\n"
">> ------------------------------------------------------ <<\n";
GentorProfileSgl::it()->set_std_profile(16,1);
+ GentorProfileSgl::it()->set_range_double(-1.0, 1.0);
GentorProfileSgl::it()->report_profile();
validater.validate();
};
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-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -66,9 +66,12 @@
//typedef Antisymmetry<itl::map<int,int>, std::less_equal, std_equal> TestLawT;
- typedef JointInverseExistence
- <interval_map<int,int,partial_enricher>, itl::inplace_plus, itl::inplace_minus> TestLawT;
+ //typedef JointInverseExistence
+ // <interval_map<int,int,partial_enricher>, itl::inplace_plus, itl::inplace_minus> TestLawT;
+ //LawValidater<TestLawT, RandomGentor> test_law;
+ typedef InplaceSymmetricDifference
+ <interval_map<int,double,total_absorber> > TestLawT;
LawValidater<TestLawT, RandomGentor> test_law;
//-----------------------------------------------------------------------------
Modified: sandbox/itl/libs/validate/example/labat_unsigned_quantifier_/vc9_labat_unsigned_quantifier.vcproj
==============================================================================
--- sandbox/itl/libs/validate/example/labat_unsigned_quantifier_/vc9_labat_unsigned_quantifier.vcproj (original)
+++ sandbox/itl/libs/validate/example/labat_unsigned_quantifier_/vc9_labat_unsigned_quantifier.vcproj 2010-03-23 08:08:38 EDT (Tue, 23 Mar 2010)
@@ -228,6 +228,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\boost\validate\driver\unsigned_quantifier_driver.hpp"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\boost\validate\unsigned_quantifier_validater.hpp"
>
</File>
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