|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r50342 - in sandbox/itl: boost/itl libs/itl/example/boost_party libs/itl/test
From: afojgo_at_[hidden]
Date: 2008-12-21 06:38:13
Author: jofaber
Date: 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
New Revision: 50342
URL: http://svn.boost.org/trac/boost/changeset/50342
Log:
Refactored: For Maps: Added template parameter ITL_SECTION Section. Moved template parameter Interval before Alloc.
Stable {msvc-9.0, partly congcc-4.3-a7}
Text files modified:
sandbox/itl/boost/itl/interval_base_map.hpp | 165 ++++++------
sandbox/itl/boost/itl/interval_map.hpp | 119 ++++----
sandbox/itl/boost/itl/interval_maps.hpp | 519 ++++++++++++++++++++-------------------
sandbox/itl/boost/itl/map.hpp | 91 +++---
sandbox/itl/boost/itl/notate.hpp | 13 +
sandbox/itl/boost/itl/rational.hpp | 4
sandbox/itl/boost/itl/split_interval_map.hpp | 85 +++---
sandbox/itl/libs/itl/example/boost_party/boost_party.cpp | 2
sandbox/itl/libs/itl/test/test_interval_map_shared.hpp | 33 +
9 files changed, 530 insertions(+), 501 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 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -140,10 +140,10 @@
typename DomainT,
typename CodomainT,
class Traits = itl::neutron_absorber,
- template<class,ITL_COMPARE>class Interval = itl::interval,
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::inplace_star, CodomainT),
+ template<class,ITL_COMPARE>class Interval = itl::interval,
ITL_ALLOC Alloc = std::allocator
>
#ifdef USE_CONCEPTS
@@ -160,11 +160,11 @@
typedef SubType sub_type;
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>
+ Traits,Compare,Combine,Section,Interval,Alloc>
type;
typedef interval_base_map<SubType,DomainT,CodomainT,
- itl::neutron_absorber,Interval,Compare,Combine,Alloc>
+ itl::neutron_absorber,Compare,Combine,Section,Interval,Alloc>
neutron_absorber_type;
/// Domain type (type of the keys) of the map
@@ -188,6 +188,9 @@
typedef ITL_COMPARE_DOMAIN(Compare,DomainT) domain_compare;
/// Combine functor for codomain values
typedef ITL_COMBINE_CODOMAIN(Combine,CodomainT) codomain_combine;
+ /// Intersection functor for codomain values
+ typedef ITL_SECTION_CODOMAIN(Section,CodomainT) codomain_intersect;
+
/// Comparison functor for intervals which are keys as well
typedef exclusive_less<interval_type> interval_compare;
@@ -200,7 +203,7 @@
/// Container type for the implementation
typedef itl::map<interval_type,codomain_type,Traits,
- ITL_EXCLUSIVE_LESS(interval_type),Combine,Alloc> ImplMapT;
+ ITL_EXCLUSIVE_LESS(interval_type),Combine,Section,Alloc> ImplMapT;
/// key type of the implementing container
typedef typename ImplMapT::key_type key_type;
@@ -224,7 +227,7 @@
/// The atomized type is elementbased map that is equivalent to the interval map
typedef typename itl::map<DomainT,CodomainT,
- Traits,Compare,Combine,Alloc> atomized_type;
+ Traits,Compare,Combine,Section,Alloc> atomized_type;
//@}
public:
@@ -653,16 +656,16 @@
<
template
<
- class DomT, class CodomT,
- class Trts, template<class DomT2,ITL_COMPARE>class Interv,
- ITL_COMPARE Comp, ITL_COMBINE Combi, ITL_ALLOC Allc
+ class DomT, class CodomT, class Trts,
+ ITL_COMPARE Comp, ITL_COMBINE Combi, ITL_SECTION Sect,
+ template<class DomT2,ITL_COMPARE>class Interv, ITL_ALLOC Allc
>
class IntervalMap
>
void add_intersection
(
interval_base_map& intersection,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& sectant
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& sectant
)const;
//@}
@@ -856,13 +859,13 @@
template
<
class SubType, class DomainT, class CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare,
- ITL_COMBINE Combine, ITL_ALLOC Alloc
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section,
+ template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
typename interval_base_map<SubType,DomainT,CodomainT,Traits,
- Interval,Compare,Combine,Alloc>::size_type
+ Compare,Combine,Section,Interval,Alloc>::size_type
interval_base_map<SubType,DomainT,CodomainT,Traits,
- Interval,Compare,Combine,Alloc>::cardinality()const
+ Compare,Combine,Section,Interval,Alloc>::cardinality()const
{
using namespace boost::mpl;
return if_<
@@ -876,13 +879,13 @@
template
<
class SubType, class DomainT, class CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare,
- ITL_COMBINE Combine, ITL_ALLOC Alloc
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section,
+ template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
typename interval_base_map<SubType,DomainT,CodomainT,Traits,
- Interval,Compare,Combine,Alloc>::difference_type
+ Compare,Combine,Section,Interval,Alloc>::difference_type
interval_base_map<SubType,DomainT,CodomainT,Traits,
- Interval,Compare,Combine,Alloc>::length()const
+ Compare,Combine,Section,Interval,Alloc>::length()const
{
difference_type length = neutron<difference_type>::value();
const_FOR_IMPLMAP(it)
@@ -896,9 +899,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-bool interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::contained_in(const interval_base_map& super)const
+bool interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::contained_in(const interval_base_map& super)const
{
// x2 should be larger than *this; so every element in this should be in x2
const_FOR_IMPLMAP(it)
@@ -911,29 +914,29 @@
template
<
class SubType,
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section,
+ template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
template
<
template
<
- class DomT, class CodomT,
- class Trts, template<class DomT2,ITL_COMPARE>class Interv,
- ITL_COMPARE Comp, ITL_COMBINE Combi, ITL_ALLOC Allc
+ class DomT, class CodomT, class Trts,
+ ITL_COMPARE Comp, ITL_COMBINE Combi, ITL_SECTION Sect,
+ template<class DomT2,ITL_COMPARE>class Interv, ITL_ALLOC Allc
>
class IntervalMap
>
-void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_intersection
(
interval_base_map& intersection,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& sectant
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& sectant
)const
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> sectant_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> sectant_type;
if(sectant.empty())
return;
typename sectant_type::const_iterator common_lwb;
@@ -948,11 +951,11 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_intersection(interval_base_map& section,
- const typename interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ const typename interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::value_type& sectant)const
{
interval_type sectant_interval = sectant.KEY_VALUE;
@@ -981,11 +984,11 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_intersection(interval_base_map& section,
- const typename interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ const typename interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::interval_type& sectant_interval)const
{
if(sectant_interval.empty()) return;
@@ -1008,9 +1011,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::join()
{
iterator it=_map.begin();
@@ -1057,9 +1060,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-std::string interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::as_string()const
+std::string interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::as_string()const
{
std::string res("");
const_FOR_IMPLMAP(it) {
@@ -1077,9 +1080,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-CodomainT interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::sum()const
+CodomainT interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::sum()const
{
CodomainT sum = CodomainT();
const_FOR_IMPLMAP(it)
@@ -1091,9 +1094,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::uniformBounds( typename interval<DomainT>::bound_types bt)
+void interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::uniformBounds( typename interval<DomainT>::bound_types bt)
{
// I can do this only, because I am shure that the contents and the
// ordering < on interval is invariant wrt. this transformation on bounds
@@ -1103,9 +1106,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::closeLeftBounds()
+void interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::closeLeftBounds()
{
// I can do this only, because I am shure that the contents and the
// ordering < on interval is invariant wrt. this transformation on bounds
@@ -1117,9 +1120,9 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-SubType& interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+SubType& interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::erase(const interval_type& x_itv)
{
if(x_itv.empty()) return *that();
@@ -1155,10 +1158,10 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
SubType&
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::erase(const interval_base_map& erasure)
{
const_FORALL(typename interval_base_map, value_pair_, erasure)
@@ -1179,10 +1182,10 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-inline bool operator == (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
+inline bool operator == (const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& lhs,
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& rhs)
{
//MEMO PORT: This implemetation worked with stlport, sgi and gnu
// implementations of the stl. But using MSVC-implementation
@@ -1195,13 +1198,13 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-inline bool is_protonic_equal(const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
+inline bool is_protonic_equal(const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& lhs,
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& rhs)
{
- interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> lhs0 = lhs;
- interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> rhs0 = rhs;
+ interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> lhs0 = lhs;
+ interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> rhs0 = rhs;
lhs0.absorb_neutrons();
rhs0.absorb_neutrons();
@@ -1216,10 +1219,10 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-inline bool operator < (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
+inline bool operator < (const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& lhs,
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& rhs)
{
return std::lexicographical_compare(
lhs.begin(), lhs.end(), rhs.begin(), rhs.end(),
@@ -1230,10 +1233,10 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-inline bool operator <= (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
+inline bool operator <= (const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& lhs,
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& rhs)
{
return lhs < rhs || lhs == rhs;
}
@@ -1244,22 +1247,22 @@
template
<
class SubType,
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section,
+ template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>&
+ Traits,Compare,Combine,Section,Interval,Alloc>&
min_assign
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& operand
+ Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> map_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> map_type;
const_FORALL(typename map_type, elem_, operand)
object.template add<inplace_min >(*elem_);
@@ -1269,22 +1272,22 @@
template
<
class SubType,
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section,
+ template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>&
+ Traits,Compare,Combine,Section,Interval,Alloc>&
max_assign
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& operand
+ Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> map_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> map_type;
const_FORALL(typename map_type, elem_, operand)
object.template add<inplace_max>(*elem_);
@@ -1295,15 +1298,15 @@
template<class CharType, class CharTraits,
class SubType, class DomainT, class CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare,
- ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section,
+ template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
std::basic_ostream<CharType, CharTraits>& operator <<
(std::basic_ostream<CharType, CharTraits>& stream,
const interval_base_map<SubType,DomainT,CodomainT,Traits,
- Interval,Compare,Combine,Alloc>& object)
+ Compare,Combine,Section,Interval,Alloc>& object)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> IntervalMapT;
+ Traits,Compare,Combine,Section,Interval,Alloc> IntervalMapT;
stream << "{";
const_FORALL(typename IntervalMapT, it, object)
stream << "(" << (*it).KEY_VALUE << "->" << (*it).CONT_VALUE << ")";
Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -107,24 +107,25 @@
typename DomainT,
typename CodomainT,
class Traits = itl::neutron_absorber,
- template<class,ITL_COMPARE>class Interval = itl::interval,
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_star, CodomainT),
+ template<class,ITL_COMPARE>class Interval = itl::interval,
ITL_ALLOC Alloc = std::allocator
>
class interval_map:
- public interval_base_map<interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
- DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ public interval_base_map<interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
+ DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
{
public:
typedef Traits traits;
- typedef interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> type;
+ typedef interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> type;
typedef type joint_type;
- typedef interval_base_map <interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
- DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> base_type;
+ 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,Interval,Compare,Combine,Alloc>
+ typedef interval_map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Section,Interval,Alloc>
neutron_absorber_type;
typedef Interval<DomainT,Compare> interval_type;
@@ -149,7 +150,7 @@
template<class SubType>
explicit interval_map
(const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& src)
+ Traits,Compare,Combine,Section,Interval,Alloc>& src)
{ assign(src); }
explicit interval_map(mapping_pair_type& base_pair): base_type()
@@ -162,16 +163,16 @@
template<class SubType>
interval_map& operator =
(const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& src)
+ Traits,Compare,Combine,Section,Interval,Alloc>& src)
{ assign(src); return *this; }
/// Assignment from a base interval_map.
template<class SubType>
void assign(const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& src)
+ Traits,Compare,Combine,Section,Interval,Alloc>& src)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> base_map_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> base_map_type;
this->clear();
// Can be implemented via _map.insert: Interval joining not necessary.
const_FORALL(typename base_map_type, it, src)
@@ -185,8 +186,8 @@
// that()->funx_. So they must be either public or made accessible by a
// friend declaration:
friend class
- interval_base_map <interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
- DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>;
+ interval_base_map <interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
+ DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>;
bool contains_(const value_type& x)const;
@@ -242,8 +243,8 @@
} ;
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+bool interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::contains_(const value_type& interv_value)const
{
interval_type interv = interv_value.KEY_VALUE;
@@ -257,8 +258,8 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+bool interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::joinable(const iterator& some, const iterator& next)const
{
// assert: next != end && some++ == next
@@ -267,9 +268,9 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
- interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
+ interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::joint_insert(iterator& left_it, const iterator& right_it)
{
// both left and right are in the set and they are neighbours
@@ -297,8 +298,8 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+bool interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::join_left(iterator& it)
{
if(it == this->_map.begin())
@@ -319,8 +320,8 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+bool interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::join_right(iterator& it)
{
if(it == this->_map.end())
@@ -341,9 +342,9 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
-interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
+interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::fill_join_left(const value_type& value)
{
//collision free insert is asserted
@@ -360,9 +361,9 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
-interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
+interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::fill_join_both(const value_type& value)
{
//collision free insert is asserted
@@ -380,10 +381,10 @@
//-----------------------------------------------------------------------------
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
-interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
+interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::fill_gap_join_left(const value_type& value)
{
//collision free insert is asserted
@@ -411,10 +412,10 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
-interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+typename interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::iterator
+interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::fill_gap_join_both(const value_type& value)
{
//collision free insert is asserted
@@ -445,9 +446,9 @@
//-----------------------------------------------------------------------------
// add<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -547,9 +548,9 @@
}
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it)
{
iterator nxt_it = it; nxt_it++;
@@ -580,9 +581,9 @@
add_rear<Combiner>(x_rest, x_val, it);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it)
{
interval_type cur_itv = (*it).KEY_VALUE ;
@@ -622,9 +623,9 @@
//-----------------------------------------------------------------------------
// subtract<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::subtract_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -691,9 +692,9 @@
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::subtract_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it)
{
iterator nxt_it=it; nxt_it++;
@@ -762,9 +763,9 @@
//-----------------------------------------------------------------------------
// insert(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::insert_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -827,9 +828,9 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::insert_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
{
@@ -855,9 +856,9 @@
insert_rear(x_rest, x_val, it);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::insert_rear(const interval_type& x_rest, const CodomainT& x_val,
iterator& it)
{
@@ -886,8 +887,8 @@
//-----------------------------------------------------------------------------
// erase(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::erase_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -945,8 +946,8 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::erase_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
{
Modified: sandbox/itl/boost/itl/interval_maps.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_maps.hpp (original)
+++ sandbox/itl/boost/itl/interval_maps.hpp 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -16,8 +16,8 @@
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class interval_map;
@@ -25,27 +25,53 @@
//-----------------------------------------------------------------------------
// addition +=
//-----------------------------------------------------------------------------
+/*CL
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator +=
(
- interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
+)
+{
+ typedef IntervalMap<DomainT,CodomainT,
+ Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
+ const_FORALL(typename operand_type, elem_, operand)
+ object.add(*elem_);
+
+ return object;
+}
+*/
+template
+<
+ class ObjectT,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
+ template
+ <
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
+ >
+ class IntervalMap
+>
+ObjectT& operator +=
+(
+ ObjectT& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> operand_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
const_FORALL(typename operand_type, elem_, operand)
object.add(*elem_);
@@ -54,49 +80,47 @@
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator +
(
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
- typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) += operand;
}
//-----------------------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator +=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> operand_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
const_FORALL(typename operand_type, elem_, operand)
object.add(*elem_);
@@ -105,24 +129,24 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator +
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) += operand;
}
//-----------------------------------------------------------------------------
@@ -130,22 +154,22 @@
//--- value_type --------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator +=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
const typename
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::value_type& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::value_type& operand
)
{
return object.add(operand);
@@ -153,24 +177,24 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator +
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::value_type& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::value_type& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) += operand;
}
//-----------------------------------------------------------------------------
@@ -192,21 +216,21 @@
*/
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator +=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::mapping_pair_type& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::mapping_pair_type& operand
)
{
return object.add(operand);
@@ -214,24 +238,24 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator +
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::mapping_pair_type& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::mapping_pair_type& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) += operand;
}
//-----------------------------------------------------------------------------
@@ -241,25 +265,25 @@
//-----------------------------------------------------------------------------
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator -=
(
- interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> operand_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
const_FORALL(typename operand_type, elem_, operand)
object.subtract(*elem_);
@@ -268,49 +292,47 @@
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator -
(
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
- typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) += operand;
}
//-----------------------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator -=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> operand_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
const_FORALL(typename operand_type, elem_, operand)
object.subtract(*elem_);
@@ -319,24 +341,23 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator -
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) -= operand;
}
//-----------------------------------------------------------------------------
@@ -356,21 +377,20 @@
*/
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator -=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::value_type& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::value_type& operand
)
{
return object.subtract(operand);
@@ -378,24 +398,23 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator -
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::value_type& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::value_type& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) -= operand;
}
//-----------------------------------------------------------------------------
@@ -404,21 +423,20 @@
//--- mapping_type ---------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator -=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::mapping_pair_type& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::mapping_pair_type& operand
)
{
return object.subtract(operand);
@@ -426,24 +444,23 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator -
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::mapping_pair_type& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::mapping_pair_type& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) -= operand;
}
//-----------------------------------------------------------------------------
@@ -453,9 +470,8 @@
//-----------------------------------------------------------------------------
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
class, template<class,ITL_COMPARE>class,
@@ -463,10 +479,10 @@
>
class IntervalSet
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator -=
(
- interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
+ interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
const IntervalSet<DomainT,Interval,Compare,Alloc>& erasure
)
{
@@ -479,9 +495,8 @@
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
class, template<class,ITL_COMPARE>class,
@@ -489,14 +504,14 @@
>
class IntervalSet
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator -
(
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
const IntervalSet<DomainT,Interval,Compare,Alloc>& operand
)
{
- typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) -= operand;
}
//-----------------------------------------------------------------------------
@@ -504,21 +519,20 @@
//--- value_type --------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator -=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::interval_type& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::interval_type& operand
)
{
return object.erase(operand);
@@ -526,24 +540,23 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator -
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::interval_type& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::interval_type& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) -= operand;
}
//-----------------------------------------------------------------------------
@@ -554,16 +567,15 @@
//-----------------------------------------------------------------------------
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
class OperandT
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
insert
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const OperandT& operand
)
{
@@ -577,16 +589,15 @@
//-----------------------------------------------------------------------------
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
class OperandT
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
erase
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const OperandT& operand
)
{
@@ -600,21 +611,20 @@
//-----------------------------------------------------------------------------
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
class SectanT
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator *=
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const SectanT& operand
)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> object_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> object_type;
object_type intersection;
object.add_intersection(intersection,operand);
object.swap(intersection);
@@ -623,44 +633,42 @@
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
class SectanT
>
-interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator *
(
- const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
+ const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
const SectanT& operand
)
{
- typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) *= operand;
}
//-----------------------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
operator *=
(
- IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> object_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> object_type;
object_type intersection;
object.add_intersection(intersection,operand);
object.swap(intersection);
@@ -669,24 +677,23 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
operator *
(
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object,
- const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& operand
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
+ const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> ObjectT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> ObjectT;
return ObjectT(object) *= operand;
}
//-----------------------------------------------------------------------------
@@ -696,28 +703,27 @@
//-----------------------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class LeftIntervalMap,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class RightIntervalMap
>
bool is_element_equal
(
const LeftIntervalMap <DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& left,
+ Traits,Compare,Combine,Section,Interval,Alloc>& left,
const RightIntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& right
+ Traits,Compare,Combine,Section,Interval,Alloc>& right
)
{
return Interval_Set::is_element_equal(left, right);
@@ -731,13 +737,12 @@
//--- IntervalMap -------------------------------------------------------------
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
@@ -745,15 +750,15 @@
bool is_disjoint
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& operand
+ Traits,Compare,Combine,Section,Interval,Alloc>& operand
)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> object_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> object_type;
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> operand_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> operand_type;
object_type intersection;
if(operand.empty())
@@ -780,8 +785,8 @@
/*CL
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
+ class SubType, class DomainT, class CodomainT, class Traits,
+
ITL_COMPARE Compare, ITL_ALLOC Alloc,
template
<
@@ -794,12 +799,12 @@
bool is_disjoint
(
interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const IntervalSet<DomainT,Interval,Compare,Alloc>& operand
)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> object_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> object_type;
typedef IntervalSet<DomainT,Interval,Compare,Alloc> operand_type;
object_type intersection;
@@ -826,13 +831,12 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap,
template
@@ -846,12 +850,12 @@
bool is_disjoint
(
const IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& object,
+ Traits,Compare,Combine,Section,Interval,Alloc>& object,
const IntervalSet<DomainT,Interval,Compare,Alloc>& operand
)
{
typedef IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> object_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> object_type;
typedef IntervalSet<DomainT,Interval,Compare,Alloc> operand_type;
object_type intersection;
@@ -877,13 +881,12 @@
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap,
template
@@ -898,7 +901,7 @@
(
const IntervalSet<DomainT,Interval,Compare,Alloc>& left,
const IntervalMap<DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& right
+ Traits,Compare,Combine,Section,Interval,Alloc>& right
)
{
return is_disjoint(right, left);
@@ -909,20 +912,19 @@
//-----------------------------------------------------------------------------
template
<
- class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
+ class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc,
template
<
- class, class, class, template<class,ITL_COMPARE>class,
- ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
+ class, class, class,
+ ITL_COMPARE, ITL_COMBINE, ITL_SECTION, template<class,ITL_COMPARE>class, ITL_ALLOC
>
class IntervalMap
>
-typename IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::interval_type
-enclosure(const IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object)
+typename IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::interval_type
+enclosure(const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object)
{
- typedef IntervalMap<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> IntervalMapT;
+ typedef IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> IntervalMapT;
typedef typename IntervalMapT::interval_type interval_type;
return
object.empty() ? neutron<interval_type>::value()
@@ -932,14 +934,13 @@
template
<
- class SubType, class DomainT, class CodomainT,
- class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
+ class SubType, class DomainT, class CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc
>
-typename interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::interval_type
-enclosure(const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object)
+typename interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>::interval_type
+enclosure(const interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object)
{
- typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> IntervalMapT;
+ typedef interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> IntervalMapT;
typedef typename IntervalMapT::interval_type interval_type;
return
object.empty() ? neutron<interval_type>::value()
Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -105,6 +105,7 @@
class Traits = itl::neutron_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_star, CodomainT),
ITL_ALLOC Alloc = std::allocator
>
class map: private std::map<DomainT, CodomainT, ITL_COMPARE_DOMAIN(Compare,DomainT),
@@ -113,12 +114,12 @@
public:
typedef Alloc<typename std::pair<const DomainT, CodomainT> > allocator_type;
- typedef typename itl::map<DomainT,CodomainT,Traits, Compare,Combine,Alloc> type;
+ typedef typename itl::map<DomainT,CodomainT,Traits, Compare,Combine,Section,Alloc> type;
typedef typename std::map<DomainT, CodomainT, ITL_COMPARE_DOMAIN(Compare,DomainT),
allocator_type> base_type;
typedef typename itl::set<DomainT, Compare, Alloc > set_type;
- typedef itl::map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Alloc>
+ typedef itl::map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Section,Alloc>
neutron_absorber_type;
typedef Traits traits;
@@ -316,60 +317,60 @@
/** Standard equality, which is lexicographical equality of the sets
as sequences, that are given by their Compare order. */
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- inline bool operator == (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& lhs,
- const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& rhs)
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ inline bool operator == (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& lhs,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& rhs)
{
typedef std::map<DomainT,CodomainT,ITL_COMPARE_DOMAIN(Compare,DomainT),Alloc<DomainT> > base_type;
return operator==((const base_type&)lhs, (const base_type&)rhs);
}
//JODO comment...
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- inline bool is_element_equal(const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& lhs,
- const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& rhs)
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ inline bool is_element_equal(const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& lhs,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& rhs)
{
typedef std::map<DomainT,CodomainT,ITL_COMPARE_DOMAIN(Compare,DomainT),Alloc<DomainT> > base_type;
return operator==((const base_type&)lhs, (const base_type&)rhs);
}
/** Protonic equality is equality on all elements that do not carry a neutron as content. */
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- inline bool is_protonic_equal (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& lhs,
- const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& rhs)
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ inline bool is_protonic_equal (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& lhs,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& rhs)
{
//JODO: Efficient implementation.
typedef std::map<DomainT,CodomainT,ITL_COMPARE_DOMAIN(Compare,DomainT),Alloc<DomainT> > base_type;
- itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc> lhs0 = lhs;
- itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc> rhs0 = rhs;
+ itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> lhs0 = lhs;
+ itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> rhs0 = rhs;
lhs0.absorb_neutrons();
rhs0.absorb_neutrons();
return operator==((const base_type&)lhs0, (const base_type&)rhs0);
}
/** Strict weak less ordering which is given by the Compare order */
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- inline bool operator < (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& lhs,
- const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& rhs)
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ inline bool operator < (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& lhs,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& rhs)
{
typedef std::map<DomainT,CodomainT,ITL_COMPARE_DOMAIN(Compare,DomainT),Alloc<DomainT> > base_type;
return operator<((const base_type&)lhs, (const base_type&)rhs);
}
/** Partial ordering which is induced by Compare */
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- inline bool operator <= (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& lhs,
- const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& rhs)
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ inline bool operator <= (const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& lhs,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& rhs)
{
typedef std::map<DomainT,CodomainT,ITL_COMPARE_DOMAIN(Compare,DomainT),Alloc<DomainT> > base_type;
return operator<=((const base_type&)lhs, (const base_type&)rhs);
}
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
template <class Combiner>
- typename map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>::iterator
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>::add(const value_type& val)
+ typename map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::iterator
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::add(const value_type& val)
{
if(Traits::absorbs_neutrons && val.CONT_VALUE == CodomainT())
return end();
@@ -401,9 +402,9 @@
}
}
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- typename map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>::size_type
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ typename map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::size_type
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
::erase(const value_type& value_pair)
{
if(Traits::absorbs_neutrons && value_pair.CONT_VALUE == CodomainT())
@@ -421,9 +422,9 @@
}
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- typename map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>::iterator
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>::subtract(const value_type& val)
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ typename map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::iterator
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::subtract(const value_type& val)
{
if(Traits::emits_neutrons)
return add<inverse_data_combine>(val);
@@ -447,8 +448,8 @@
}
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- std::string map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>::as_string()const
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ std::string map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::as_string()const
{
std::string repr;
const_FORALL_THIS(it) {
@@ -463,9 +464,9 @@
return repr;
}
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
template<class Predicate>
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
::erase_if(const Predicate& pred)
{
iterator it = begin();
@@ -477,10 +478,10 @@
}
- template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
template<class Predicate>
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>
- ::assign_if(const map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& src, const Predicate& pred)
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
+ ::assign_if(const map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& src, const Predicate& pred)
{
clear();
const_iterator it = src.begin();
@@ -492,12 +493,12 @@
}
//-------------------------------------------------------------------------
template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>&
- insert(map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& object,
- const map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& insertee)
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>&
+ insert(map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object,
+ const map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& insertee)
{
- typedef map<DomainT,CodomainT,Traits,Compare,Combine,Alloc> map_type;
+ typedef map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> map_type;
const_FORALL(typename map_type, elem_, insertee)
object.insert(*elem_);
@@ -506,12 +507,12 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>&
- erase(map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& object,
- const map<DomainT,CodomainT,Traits,Compare,Combine,Alloc>& erasee)
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+ map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>&
+ erase(map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object,
+ const map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& erasee)
{
- typedef map<DomainT,CodomainT,Traits,Compare,Combine,Alloc> map_type;
+ typedef map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> map_type;
const_FORALL(typename map_type, elem_, erasee)
object.erase(*elem_);
Modified: sandbox/itl/boost/itl/notate.hpp
==============================================================================
--- sandbox/itl/boost/itl/notate.hpp (original)
+++ sandbox/itl/boost/itl/notate.hpp 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -79,6 +79,7 @@
#define ITL_USE_COMPARE_TEMPLATE_TEMPLATE
#define ITL_USE_COMBINE_TEMPLATE_TEMPLATE
+#define ITL_USE_SECTION_TEMPLATE_TEMPLATE
//------------------------------------------------------------------------------
// template parameter Compare can not be a template type parameter as long as
@@ -109,6 +110,18 @@
#endif
//------------------------------------------------------------------------------
+// template parameter Section could be a template type parameter.
+#ifdef ITL_USE_SECTION_TEMPLATE_TEMPLATE
+# define ITL_SECTION template<class>class
+# define ITL_SECTION_CODOMAIN(itl_intersect, codomain_type) itl_intersect<codomain_type>
+# define ITL_SECTION_INSTANCE(section_instance,codomain_type) section_instance
+#else//ITL_USE_SECTION_TEMPLATE_TYPE
+# define ITL_SECTION class
+# define ITL_SECTION_CODOMAIN(itl_intersect, codomain_type) itl_intersect
+# define ITL_SECTION_INSTANCE(section_instance,codomain_type) section_instance<codomain_type>
+#endif
+
+//------------------------------------------------------------------------------
#define ITL_ALLOC template<class>class
#endif // __itl_NOTATE_H_JOFA_990119__
Modified: sandbox/itl/boost/itl/rational.hpp
==============================================================================
--- sandbox/itl/boost/itl/rational.hpp (original)
+++ sandbox/itl/boost/itl/rational.hpp 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -7,9 +7,7 @@
+----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
-itl_ptime provides adapter code for boost::posix_time::ptime.
-It implements incrementation (++) decrementation (--) and a neutral element
-w.r.t. addition (neutron()).
+itl_rational provides adapter code for boost::rational.
-----------------------------------------------------------------------------*/
#ifndef __itl_rational_JOFA_080913_H__
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 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -129,23 +129,24 @@
typename DomainT,
typename CodomainT,
class Traits = itl::neutron_absorber,
- template<class,ITL_COMPARE>class Interval = itl::interval,
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_star, CodomainT),
+ template<class,ITL_COMPARE>class Interval = itl::interval,
ITL_ALLOC Alloc = std::allocator
>
class split_interval_map:
- public interval_base_map<split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
- DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ public interval_base_map<split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
+ DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
{
public:
typedef Traits traits;
- typedef split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> type;
- typedef interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> joint_type;
- typedef interval_base_map <split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
- DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc> base_type;
+ typedef split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> type;
+ typedef interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> joint_type;
+ 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,Interval,Compare,Combine,Alloc>
+ typedef split_interval_map<DomainT,CodomainT,itl::neutron_absorber,Compare,Combine,Section,Interval,Alloc>
neutron_absorber_type;
typedef Interval<DomainT,Compare> interval_type;
@@ -175,16 +176,16 @@
template<class SubType>
split_interval_map& operator =
(const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& src)
+ Traits,Compare,Combine,Section,Interval,Alloc>& src)
{ assign(src); return *this; }
/// Assignment from a base interval_map.
template<class SubType>
void assign(const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc>& src)
+ Traits,Compare,Combine,Section,Interval,Alloc>& src)
{
typedef interval_base_map<SubType,DomainT,CodomainT,
- Traits,Interval,Compare,Combine,Alloc> base_map_type;
+ Traits,Compare,Combine,Section,Interval,Alloc> base_map_type;
this->clear();
// Can be implemented via _map.insert: Interval joining not necessary.
const_FORALL(typename base_map_type, it, src)
@@ -199,8 +200,8 @@
// friend declaration:
friend class
interval_base_map
- <split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
- DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc >;
+ <split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>,
+ DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc >;
bool contains_(const value_type& x)const;
@@ -240,8 +241,8 @@
} ;
- template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
- bool split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+ bool split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::contains_(const value_type& interv_value)const
{
interval_type interv = interv_value.KEY_VALUE;
@@ -257,8 +258,8 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::fill(const value_type& value)
{
//collision free insert is asserted
@@ -270,9 +271,9 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::fill_gap(const value_type& value)
{
//collision free insert is asserted
@@ -298,9 +299,9 @@
//-----------------------------------------------------------------------------
// add<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -387,9 +388,9 @@
}
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
{
@@ -416,9 +417,9 @@
add_rear<Combiner>(x_rest, x_val, it);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it)
{
interval_type cur_itv = (*it).KEY_VALUE ;
@@ -451,9 +452,9 @@
//-----------------------------------------------------------------------------
// subtract<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::subtract_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -510,9 +511,9 @@
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
template<class Combiner>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::subtract_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
{
@@ -562,9 +563,9 @@
//-----------------------------------------------------------------------------
// insert(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::insert_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -619,9 +620,9 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::insert_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
{
@@ -640,9 +641,9 @@
insert_rear(x_rest, x_val, it);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
- ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::insert_rear(const interval_type& x_rest, const CodomainT& x_val,
iterator& it)
{
@@ -664,8 +665,8 @@
//-----------------------------------------------------------------------------
// erase(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::erase_(const value_type& x)
{
const interval_type& x_itv = x.KEY_VALUE;
@@ -723,8 +724,8 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
-void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
+template <typename DomainT, typename CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
+void split_interval_map<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
::erase_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
{
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 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -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, interval, less, inplace_max > BoostPartyHeightHistoryT;
+typedef interval_map<ptime, int, neutron_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 2008-12-21 06:38:12 EST (Sun, 21 Dec 2008)
@@ -12,9 +12,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -160,9 +161,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -222,9 +224,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -276,9 +279,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -308,9 +312,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -358,9 +363,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -410,9 +416,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -453,9 +460,10 @@
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -516,9 +524,10 @@
// Test for nontrivial intersection of interval maps with intervals and values
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -628,9 +637,10 @@
// Test for nontrivial erasure of interval maps with intervals and interval sets
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
@@ -744,9 +754,10 @@
// Test first_collision
template <template<class T, class U,
class Traits = neutron_absorber,
- template<class,ITL_COMPARE>class Interval = interval,
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_star, U),
+ template<class,ITL_COMPARE>class Interval = interval,
ITL_ALLOC Alloc = std::allocator
>class IntervalMap,
class T, class U>
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