|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r50552 - in sandbox/itl: boost/itl boost/validate/laws libs/itl/doc libs/itl/example/month_and_week_grid libs/itl/example/user_groups libs/itl/test libs/itl/test/test_interval_set_mixed libs/itl/test/test_itl_interval libs/itl_xt/test libs/itl_xt/test/meta_functors
From: afojgo_at_[hidden]
Date: 2009-01-12 09:57:06
Author: jofaber
Date: 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
New Revision: 50552
URL: http://svn.boost.org/trac/boost/changeset/50552
Log:
Refactored. Replaced intersection op *= and * by OP_INPLACE_INTERSECT and OP_INTERSECT.
Stable {msvc-9.0, partly congcc-4.3-a7}
Text files modified:
sandbox/itl/boost/itl/functors.hpp | 4 +-
sandbox/itl/boost/itl/interval.hpp | 4 +-
sandbox/itl/boost/itl/interval_base_map.hpp | 34 +++++++++++--------
sandbox/itl/boost/itl/interval_base_set.hpp | 2
sandbox/itl/boost/itl/interval_maps.hpp | 12 +++---
sandbox/itl/boost/itl/interval_sets.hpp | 20 +++++-----
sandbox/itl/boost/itl/map.hpp | 4 +-
sandbox/itl/boost/itl/notate.hpp | 3 +
sandbox/itl/boost/itl/set.hpp | 2
sandbox/itl/boost/validate/laws/set_laws.h | 36 ++++++++++----------
sandbox/itl/libs/itl/doc/concepts.qbk | 10 ++--
sandbox/itl/libs/itl/doc/interface.qbk | 2
sandbox/itl/libs/itl/doc/semantics.qbk | 68 ++++++++++++++++++++--------------------
sandbox/itl/libs/itl/example/month_and_week_grid/month_and_week_grid.cpp | 2
sandbox/itl/libs/itl/example/user_groups/user_groups.cpp | 2
sandbox/itl/libs/itl/test/test_interval_map_shared.hpp | 26 +++++++-------
sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp | 50 ++++++++++++++--------------
sandbox/itl/libs/itl/test/test_interval_set_shared.hpp | 22 ++++++------
sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp | 14 ++++----
sandbox/itl/libs/itl_xt/test/itvsettester.h | 2
sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp | 6 +++
21 files changed, 169 insertions(+), 156 deletions(-)
Modified: sandbox/itl/boost/itl/functors.hpp
==============================================================================
--- sandbox/itl/boost/itl/functors.hpp (original)
+++ sandbox/itl/boost/itl/functors.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -188,13 +188,13 @@
: public neutron_based_inplace_combine<Type>
{
void operator()(Type& object, const Type& operand)const
- { object *= operand; }
+ { object OP_INPLACE_INTERSECT operand; }
static Type neutron() { return boost::itl::neutron<Type>::value(); }
};
template<>
- inline std::string unary_template_to_string<inplace_star>::apply() { return "*="; }
+ inline std::string unary_template_to_string<inplace_star>::apply() { return "&="; }
// ------------------------------------------------------------------------
template <typename Type> struct inplace_slash
Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -162,7 +162,7 @@
\subsection user_groups_subsec User Groups: Union and intersecion of histories
Example user_groups.cpp shows how interval_maps can be unified (+=) or
- intersected (*=) to calculate desired informations.
+ intersected (&=) to calculate desired informations.
We have a group of
admin users and of medcial staff, who have different authorisations in
@@ -1165,7 +1165,7 @@
// operators
// ----------------------------------------------------------------------------
template <class DomainT, ITL_COMPARE Compare>
-itl::interval<DomainT,Compare>& operator *= ( itl::interval<DomainT,Compare>& section,
+itl::interval<DomainT,Compare>& operator OP_INPLACE_INTERSECT ( itl::interval<DomainT,Compare>& section,
const itl::interval<DomainT,Compare>& sectant)
{
section.intersect(section, sectant);
Modified: sandbox/itl/boost/itl/interval_base_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_map.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -707,7 +707,7 @@
//-----------------------------------------------------------------------------
/** @name H.mor: Morphic modifiers */
-//@{
+
/// Removal of neutral element values
/** All value pairs \c (I,y) that have neutral elements \c y==codomain_type()
@@ -746,7 +746,7 @@
const_FOR_IMPLMAP(it)
dom += (*it).KEY_VALUE;
}
-//@}
+
@@ -757,7 +757,7 @@
as a generalized find operation on interval maps.
All find operations can be expressed by means of intersection \ref intersect
- or \ref operator *=. Searching for an interval in an interval map yields
+ or \ref operator &=. Searching for an interval in an interval map yields
an interval map anyway in the general case.
*/
//@}
@@ -814,27 +814,23 @@
std::string as_string() const;
//@}
-/** @name T: For discrete domain datatypes only that implement operators <tt>++</tt>
- and <tt>--</tt>
- */
-//@{
- /** Smallest element of the map (wrt. the partial ordering on DomainT).
+ /* Smallest element of the map (wrt. the partial ordering on DomainT).
first() does not exist for continuous datatypes and open interval bounds.
*/
DomainT first()const { return (*(_map.begin())).KEY_VALUE.first(); } // JODO NONCONT
- /** Largest element of the map (wrt. the partial ordering on DomainT).
+ /* Largest element of the map (wrt. the partial ordering on DomainT).
first() does not exist for continuous datatypes and open interval bounds.
*/
DomainT last()const { return (*(_map.rbegin())).KEY_VALUE.last(); } // JODO NONCONT
- /** Sum of associated elements of the map
+ /* Sum of associated elements of the map
<b>Nicht getestet</b> */
CodomainT sum()const;
- /** Set interval bounds to the type <tt>bt</tt> for intervals in the map.
+ /** Set interval bounds to the type <tt>bt</tt> for intervals in the map.
Interval bounds of different types are created by opeations on
interval maps. This function allows to reset them uniformly without,
@@ -844,10 +840,6 @@
void uniformBounds( typename interval<DomainT>::bound_types bt);
void closeLeftBounds();
-//@}
-
- void recJoin();
-
template<typename IteratorT>
static const key_type& key_value(IteratorT& value_){ return (*value_).first; }
@@ -1235,6 +1227,18 @@
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
>
+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);
+}
+
+
+template
+<
+ 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
+>
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)
{
Modified: sandbox/itl/boost/itl/interval_base_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_set.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -338,7 +338,7 @@
/** Perform intersection of <tt>*this</tt> and <tt>x</tt>; assign result
to <tt>*this</tt>
- Aufruf <tt>x *= y</tt> bedeutet <tt>x = x geschnitten mit y </tt>
+ Aufruf <tt>x &= y</tt> bedeutet <tt>x = x geschnitten mit y </tt>
*/
//@}
Modified: sandbox/itl/boost/itl/interval_maps.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_maps.hpp (original)
+++ sandbox/itl/boost/itl/interval_maps.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -579,7 +579,7 @@
class SectanT
>
interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
-operator *=
+operator OP_INPLACE_INTERSECT
(
interval_base_map<SubType,DomainT,CodomainT,
Traits,Compare,Combine,Section,Interval,Alloc>& object,
@@ -601,14 +601,14 @@
class SectanT
>
interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
-operator *
+operator OP_INTERSECT
(
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,Compare,Combine,Section,Interval,Alloc> ObjectT;
- return ObjectT(object) *= operand;
+ return ObjectT(object) OP_INPLACE_INTERSECT operand;
}
//-----------------------------------------------------------------------------
@@ -624,7 +624,7 @@
class IntervalMap
>
IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>&
-operator *=
+operator OP_INPLACE_INTERSECT
(
IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& object,
const IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>& operand
@@ -650,14 +650,14 @@
class IntervalMap
>
IntervalMap<DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc>
-operator *
+operator OP_INTERSECT
(
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,Compare,Combine,Section,Interval,Alloc> ObjectT;
- return ObjectT(object) *= operand;
+ return ObjectT(object) OP_INPLACE_INTERSECT operand;
}
//-----------------------------------------------------------------------------
Modified: sandbox/itl/boost/itl/interval_sets.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_sets.hpp (original)
+++ sandbox/itl/boost/itl/interval_sets.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -250,7 +250,7 @@
template<class, ITL_COMPARE, template<class,ITL_COMPARE>class, ITL_ALLOC>class IntervalSet
>
interval_base_set<SubType,DomainT,Compare,Interval,Alloc>&
-operator *=
+operator OP_INPLACE_INTERSECT
(
interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& object,
const IntervalSet <DomainT,Compare,Interval,Alloc>& operand
@@ -291,14 +291,14 @@
template<class, ITL_COMPARE, template<class,ITL_COMPARE>class, ITL_ALLOC>class IntervalSet
>
interval_base_set<SubType,DomainT,Compare,Interval,Alloc>
-operator *
+operator OP_INTERSECT
(
const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& object,
const IntervalSet <DomainT,Compare,Interval,Alloc>& operand
)
{
typedef interval_base_set<SubType,DomainT,Compare,Interval,Alloc> ObjectT;
- return ObjectT(object) *= operand;
+ return ObjectT(object) OP_INPLACE_INTERSECT operand;
}
//-----------------------------------------------------------------------------
@@ -310,7 +310,7 @@
template<class, ITL_COMPARE, template<class,ITL_COMPARE>class, ITL_ALLOC>class IntervalSet
>
IntervalSet<DomainT,Compare,Interval,Alloc>&
-operator *=
+operator OP_INPLACE_INTERSECT
(
IntervalSet<DomainT,Compare,Interval,Alloc>& object,
const typename IntervalSet<DomainT,Compare,Interval,Alloc>::interval_type& interval
@@ -337,14 +337,14 @@
template<class, ITL_COMPARE, template<class,ITL_COMPARE>class, ITL_ALLOC>class IntervalSet
>
IntervalSet<DomainT,Compare,Interval,Alloc>
-operator *
+operator OP_INTERSECT
(
const IntervalSet<DomainT,Compare,Interval,Alloc>& object,
const typename IntervalSet<DomainT,Compare,Interval,Alloc>::interval_type& operand
)
{
typedef IntervalSet<DomainT,Compare,Interval,Alloc> ObjectT;
- return ObjectT(object) *= operand;
+ return ObjectT(object) OP_INPLACE_INTERSECT operand;
}
//-----------------------------------------------------------------------------
@@ -356,7 +356,7 @@
template<class, ITL_COMPARE, template<class,ITL_COMPARE>class, ITL_ALLOC>class IntervalSet
>
IntervalSet<DomainT,Compare,Interval,Alloc>&
-operator *=
+operator OP_INPLACE_INTERSECT
(
IntervalSet<DomainT,Compare,Interval,Alloc>& object,
const DomainT& value
@@ -364,7 +364,7 @@
{
typedef typename IntervalSet<DomainT,Compare,Interval,Alloc>
::interval_type interval_type;
- return object *= interval_type(value);
+ return object OP_INPLACE_INTERSECT interval_type(value);
}
template
@@ -374,14 +374,14 @@
template<class, ITL_COMPARE, template<class,ITL_COMPARE>class, ITL_ALLOC>class IntervalSet
>
IntervalSet<DomainT,Compare,Interval,Alloc>
-operator *
+operator OP_INTERSECT
(
const IntervalSet<DomainT,Compare,Interval,Alloc>& object,
const DomainT& operand
)
{
typedef IntervalSet<DomainT,Compare,Interval,Alloc> ObjectT;
- return ObjectT(object) *= operand;
+ return ObjectT(object) OP_INPLACE_INTERSECT operand;
}
//-----------------------------------------------------------------------------
Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -259,7 +259,7 @@
//JODO
/** Intersect map \c x2 and \c *this.
So \c *this becomes the intersection of \c *this and \c x2 */
- map& operator *= (const map& x2)
+ map& operator OP_INPLACE_INTERSECT (const map& x2)
{
if(Traits::emits_neutrons) return *this += x2;
else{ Map::intersect(*this, x2); return *this; }
@@ -267,7 +267,7 @@
/** Intersect set \c x2 and \c *this.
So \c *this becomes the intersection of \c *this and \c x2 */
- map& operator *= (const set_type& x2)
+ map& operator OP_INPLACE_INTERSECT (const set_type& x2)
{ Map::intersect(*this, x2); return *this; }
/** \c key_value allows for a uniform access to \c key_values which is
Modified: sandbox/itl/boost/itl/notate.hpp
==============================================================================
--- sandbox/itl/boost/itl/notate.hpp (original)
+++ sandbox/itl/boost/itl/notate.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -126,6 +126,9 @@
//------------------------------------------------------------------------------
#define ITL_ALLOC template<class>class
+#define OP_INTERSECT &
+#define OP_INPLACE_INTERSECT &=
+
//------------------------------------------------------------------------------
namespace boost{namespace itl
{
Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -172,7 +172,7 @@
/** Intersect set \c x2 \c *this.
So \c *this becomes the intersection of \c *this and \c x2 */
- set& operator *= (const set& x) { Set::intersect(*this, x); return *this; }
+ set& operator OP_INPLACE_INTERSECT (const set& x) { Set::intersect(*this, x); return *this; }
/** \c key_value allows for a uniform access to \c key_values which is
is used for common algorithms on sets and maps. */
Modified: sandbox/itl/boost/validate/laws/set_laws.h
==============================================================================
--- sandbox/itl/boost/validate/laws/set_laws.h (original)
+++ sandbox/itl/boost/validate/laws/set_laws.h 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -131,7 +131,7 @@
{
/** a + (b * c) == (a + b) * (a + c)
a(1)(b(2)c) == (a(1)b)(2)(a(1)c)
- computed using inplace operators +=, += and *=
+ computed using inplace operators +=, += and &=
Input = (a := inVal1, b := inVal2, c := inVal3)
Output = (lhs_result, rhs_result)
*/
@@ -229,15 +229,15 @@
: public Law<InplaceDeMorgan<Type,Operator1,Operator2,Equality>,
LOKI_TYPELIST_3(Type,Type,Type), LOKI_TYPELIST_2(Type,Type)>
{
- /** a - (b + c) == (a - b) * (a - c)
+ /** a - (b + c) == (a - b) & (a - c)
a - (b(1)c) == (a - b)(2)(a - c)
- computed using inplace operators +=, += and *=
+ computed using inplace operators +=, += and &=
Input = (a := inVal1, b := inVal2, c := inVal3)
Output = (lhs_result, rhs_result)
*/
public:
std::string name()const { return "InplacePlusDeMorgan"; }
- std::string formula()const { return "a - (b + c) == (a - b) * (a - c) 'inplace'"; }
+ std::string formula()const { return "a - (b + c) == (a - b) & (a - c) 'inplace'"; }
std::string typeString()const
{
@@ -251,7 +251,7 @@
bool holds()
{
- // a - (b + c) == (a - b) * (a - c)
+ // a - (b + c) == (a - b) & (a - c)
// --- left hand side ------------------------
Type b_plus_c = this->template getInputValue<operand_b>();
Operator1<Type>()(b_plus_c, this->template getInputValue<operand_c>());
@@ -267,7 +267,7 @@
Type a_minus_c = this->template getInputValue<operand_a>();
a_minus_c -= this->template getInputValue<operand_c>();
- // rhs := (a - b) * (a - c)
+ // rhs := (a - b) & (a - c)
Type rhs = a_minus_b;
Operator2<Type>()(rhs, a_minus_c);
@@ -298,7 +298,7 @@
LOKI_TYPELIST_3(Type,Type,Type), LOKI_TYPELIST_2(Type,Type)>
{
/** (a + b) - c == (a - c) + (b - c)
- computed using inplace operators +=, -= and *=
+ computed using inplace operators +=, -= and &=
Input = (a := inVal1, b := inVal2, c := inVal3)
Output = (lhs_result, rhs_result)
*/
@@ -391,14 +391,14 @@
: public Law<InplaceSymmetricDifference<Type>,
LOKI_TYPELIST_2(Type,Type), LOKI_TYPELIST_2(Type,Type)>
{
- /** (a + b) - (a * b) == (a - b) + (b - a)
- computed using inplace operators +=, += and *=
+ /** (a + b) - (a & b) == (a - b) + (b - a)
+ computed using inplace operators +=, += and &=
Input = (a := inVal1, b := inVal2)
Output = (lhs_result, rhs_result)
*/
public:
std::string name()const { return "Inplace Symmetric Difference"; }
- std::string formula()const { return "(a+b) - (a*b) == (a-b) + (b-a) 'inplace'"; }
+ std::string formula()const { return "(a+b) - (a&b) == (a-b) + (b-a) 'inplace'"; }
std::string typeString()const
{
@@ -415,7 +415,7 @@
a_plus_b += this->template getInputValue<operand_b>();
Type a_sec_b = this->template getInputValue<operand_a>();
- a_sec_b *= this->template getInputValue<operand_b>();
+ a_sec_b OP_INPLACE_INTERSECT this->template getInputValue<operand_b>();
Type lhs = a_plus_b;
lhs -= a_sec_b;
@@ -446,7 +446,7 @@
std::cout << "a_plus_b=" << a_plus_b.as_string() << std::endl;
Type a_sec_b = this->template getInputValue<operand_a>();
- a_sec_b *= this->template getInputValue<operand_b>();
+ a_sec_b OP_INPLACE_INTERSECT this->template getInputValue<operand_b>();
std::cout << "a_sec_b=" << a_sec_b.as_string() << std::endl;
@@ -488,14 +488,14 @@
: public Law<SectionAbsorbtion<MapT>,
LOKI_TYPELIST_2(MapT, typename MapT::set_type), LOKI_TYPELIST_2(MapT,MapT)>
{
- /** a - (a * b) == a - b
- computed using inplace operators -= and *=
+ /** a - (a & b) == a - b
+ computed using inplace operators -= and &=
Input = (a := inVal1, b := inVal2)
Output = (lhs_result, rhs_result)
*/
public:
std::string name()const { return "SectionAbsorbtion"; }
- std::string formula()const { return "map a, set b: a - (a * b) == a - b 'inplace'"; }
+ std::string formula()const { return "map a, set b: a - (a & b) == a - b 'inplace'"; }
std::string typeString()const
{
@@ -507,11 +507,11 @@
bool holds()
{
- // a - (a * b) == a - b
+ // a - (a & b) == a - b
// --- left hand side ------------------------
- // lhs := a - (a * b)
+ // lhs := a - (a & b)
MapT a_sec_b = this->template getInputValue<operand_a>();
- a_sec_b *= this->template getInputValue<operand_b>();
+ a_sec_b OP_INPLACE_INTERSECT this->template getInputValue<operand_b>();
MapT lhs = this->template getInputValue<operand_a>();
lhs -= a_sec_b;
Modified: sandbox/itl/libs/itl/doc/concepts.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/concepts.qbk (original)
+++ sandbox/itl/libs/itl/doc/concepts.qbk 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -37,7 +37,7 @@
On the __conceptual__ aspect
-* in __itv__ implements a set of elements partially.
+* an __itv__ implements a set of elements partially.
* an __itv_set__ implements a set of elements.
* an __itv_map__ implements a map of element value pairs.
@@ -67,8 +67,8 @@
[[] [] [`Set operator + (const Set& s1, const Set& s2)`]]
[[set difference] [inplace][`Set& operator -= (Set& s1, const Set& s2)`] ]
[[] [] [`Set operator - (const Set& s1, const Set& s2)`]]
-[[set intersection][inplace][`Set& operator *= (Set& s1, const Set& s2)`] ]
-[[] [] [`Set operator * (const Set& s1, const Set& s2)`]]
+[[set intersection][inplace][`Set& operator &= (Set& s1, const Set& s2)`] ]
+[[] [] [`Set operator & (const Set& s1, const Set& s2)`]]
]
Equality on `Sets` is not implemented as `operator ==`, because `operator ==`
@@ -108,8 +108,8 @@
[[] [] [`Map operator + (const Map& s1, const Map& s2)`]]
[[set difference] [inplace][`Map& operator -= (Map& s1, const Map& s2)`] ]
[[] [] [`Map operator - (const Map& s1, const Map& s2)`]]
-[[set intersection][inplace][`Map& operator *= (Map& s1, const Map& s2)`] ]
-[[] [] [`Map operator * (const Map& s1, const Map& s2)`]]
+[[set intersection][inplace][`Map& operator &= (Map& s1, const Map& s2)`] ]
+[[] [] [`Map operator & (const Map& s1, const Map& s2)`]]
]
As one can see, on the abstract kernel the signatures of the itl's `Set` and `Map`
Modified: sandbox/itl/libs/itl/doc/interface.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/interface.qbk (original)
+++ sandbox/itl/libs/itl/doc/interface.qbk 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -386,7 +386,7 @@
[[['*Intersection*]] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]
[[void intersect(T&, const P&)const] [__i] [__eiS][__eiS __bpM][ ] [ ] [ ] [ ]]
[[void add_intersection(T&, const P&)const][][__eiS][__eiS __bpM][ ] [ ] [ ] [ ]]
-[[T& operator*=(T&, const P&)] [__i] [__eiS][__eiS __bpM][?__eS][?__bM] [ ] [ ]]
+[[T& operator&=(T&, const P&)] [__i] [__eiS][__eiS __bpM][?__eS][?__bM] [ ] [ ]]
[[['*Iterator related*]] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]
[[J begin()] [ ] [2] [2] [2] [2] [2] [2]]
[[J end()] [ ] [2] [2] [2] [2] [2] [2]]
Modified: sandbox/itl/libs/itl/doc/semantics.qbk
==============================================================================
--- sandbox/itl/libs/itl/doc/semantics.qbk (original)
+++ sandbox/itl/libs/itl/doc/semantics.qbk 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -149,11 +149,11 @@
[h5 Laws on set intersection]
For the operation ['*set intersection*] available as
-`operator *, *=, &, &=` these laws were validated:
+`operator &, &=` these laws were validated:
``
-Associativity<S,*,== >: S a,b,c; a*(b*c) == (a*b)*c
-Commutativity<S,*,== >: S a,b; a*b == b*a
+Associativity<S,&,== >: S a,b,c; a&(b&c) == (a&b)&c
+Commutativity<S,&,== >: S a,b; a&b == b&a
``
Neutrality has *not* been validated to avoid
@@ -171,7 +171,7 @@
SelfRemovability<S,-,== >: S a; a - a == S()
``
-Summarized in the next table are laws that use `+`, `*` and `-`
+Summarized in the next table are laws that use `+`, `&` and `-`
as a single operation. For all validated laws,
the left and right hand sides of the equations
are lexicographically equal, as denoted by `==` in the cells
@@ -190,17 +190,17 @@
Laws, like distributivity, that use more than one operation can
sometimes be instantiated for different sequences of operators
as can be seen below. In the two instantiations of the distributivity
-laws operators `+` and `*` are swapped. So we can have small operator
-signatures like `+,*` and `*,+` to describe such instantiations,
+laws operators `+` and `&` are swapped. So we can have small operator
+signatures like `+,&` and `&,+` to describe such instantiations,
which will be used below.
Not all instances of distributivity laws hold for lexicographical equality.
Therefore they are denoted using a /variable/ equality `=v=` below.
``
- Distributivity<S,+,*,=v= > : S a,b,c; a + (b * c) =v= (a + b) * (a + c)
- Distributivity<S,*,+,=v= > : S a,b,c; a * (b + c) =v= (a * b) + (a * c)
+ Distributivity<S,+,&,=v= > : S a,b,c; a + (b & c) =v= (a + b) * (a + c)
+ Distributivity<S,&,+,=v= > : S a,b,c; a * (b + c) =v= (a * b) + (a * c)
RightDistributivity<S,+,-,=v= > : S a,b,c; (a + b) - c =v= (a - c) + (b - c)
-RightDistributivity<S,*,-,=v= > : S a,b,c; (a * b) - c =v= (a - c) * (b - c)
+RightDistributivity<S,&,-,=v= > : S a,b,c; (a * b) - c =v= (a - c) * (b - c)
``
The next table shows the relationship between
@@ -210,12 +210,12 @@
used equality relation.
``
- +,* *,+
+ +,& &,+
Distributivity joining == ==
separating == ==
splitting =e= =e=
- +,- *,-
+ +,- &,-
RightDistributivity joining == ==
separating == ==
splitting =e= ==
@@ -254,12 +254,12 @@
below is an adaption for the binary set difference `-`, which is
also called ['*relative complement*].
``
-DeMorgan<S,+,*,=v= > : S a,b,c; a - (b + c) =v= (a - b) * (a - c)
-DeMorgan<S,*,+,=v= > : S a,b,c; a - (b * c) =v= (a - b) + (a - c)
+DeMorgan<S,+,&,=v= > : S a,b,c; a - (b + c) =v= (a - b) * (a - c)
+DeMorgan<S,&,+,=v= > : S a,b,c; a - (b & c) =v= (a - b) + (a - c)
``
``
- +,* *,+
+ +,& &,+
DeMorgan joining == ==
separating == =e=
splitting == =e=
@@ -429,8 +429,8 @@
Neutrality<C,+,== > : C a; a+C() == a
Commutativity<C,+,== >: C a,b; a+b == b+a
-Associativity<C,*,== >: C a,b,c; a*(b*c) ==(a*b)*c
-Commutativity<C,*,== >: C a,b; a*b == b*a
+Associativity<C,*,== >: C a,b,c; a&(b&c) ==(a&b)&c
+Commutativity<C,*,== >: C a,b; a&b == b&a
RightNeutrality<C,-,== > : C a; a-C() == a
SelfRemovability<C,-,=v= >: C a; a - a =v= C()
@@ -442,7 +442,7 @@
if the map is not a `neutron_absorber`.
``
- + * -
+ + & -
Associativity == ==
Neutrality == ==
Commutativity == ==
@@ -453,10 +453,10 @@
[h5 Distributivity Laws]
``
- Distributivity<C,+,*,=v= > : C a,b,c; a + (b * c) =v= (a + b) * (a + c)
- Distributivity<C,*,+,=v= > : C a,b,c; a * (b + c) =v= (a * b) + (a * c)
+ Distributivity<C,+,&,=v= > : C a,b,c; a + (b & c) =v= (a + b) * (a + c)
+ Distributivity<C,&,+,=v= > : C a,b,c; a * (b + c) =v= (a * b) + (a * c)
RightDistributivity<C,+,-,=v= > : C a,b,c; (a + b) - c =v= (a - c) + (b - c)
-RightDistributivity<C,*,-,=v= > : C a,b,c; (a * b) - c =v= (a - c) * (b - c)
+RightDistributivity<C,&,-,=v= > : C a,b,c; (a * b) - c =v= (a - c) * (b - c)
``
Results for the distributivity laws are almost identical to
@@ -465,12 +465,12 @@
holds for lexicographical equality.
``
- +,* *,+
+ +,& &,+
Distributivity joining == ==
splitting neutron_absorber =e= =e=
neutron_enricher =e= ==
- +,- *,-
+ +,- &,-
RightDistributivity joining == ==
splitting =e= ==
``
@@ -478,12 +478,12 @@
[h5 DeMorgan's Law and Symmetric Difference]
``
-DeMorgan<C,+,*,=v= > : C a,b,c; a - (b + c) =v= (a - b) * (a - c)
-DeMorgan<C,*,+,=v= > : C a,b,c; a - (b * c) =v= (a - b) + (a - c)
+DeMorgan<C,+,&,=v= > : C a,b,c; a - (b + c) =v= (a - b) * (a - c)
+DeMorgan<C,&,+,=v= > : C a,b,c; a - (b & c) =v= (a - b) + (a - c)
``
``
- +,* *,+
+ +,& &,+
DeMorgan joining == ==
splitting == =e=
``
@@ -569,17 +569,17 @@
[h5 Intersection on Quantifiers]
Another difference between `Collectors` and `Quantifiers`
-is the semantics of `operator *`, that has the meaning of
+is the semantics of `operator &`, that has the meaning of
set intersection for `Collectors`.
-For the /aggregate on overlap principle/ the operation `*`
+For the /aggregate on overlap principle/ the operation `&`
has to be passed to combine associated values on overlap
of intervals or collision of keys. This can not be done
for `Quantifiers`, since numeric types do not implement
intersection.
For `CodomainT` types that are not models of `Sets`
-`operator *` is defined as aggregation on the intersection
+`operator &` is defined as aggregation on the intersection
of the domains.
``
//Pseudocode example:
@@ -594,7 +594,7 @@
For `Quantifier` that is a model of an `InfiniteVector`
and which is therefore defined for every key value of
-the `DomainT` type, this definition of `operator *`
+the `DomainT` type, this definition of `operator &`
degenerates to the same sematics that `operaotor +`
implements:
``
@@ -624,8 +624,8 @@
Neutrality<Q,+,== > : Q a; a+Q() == a
Commutativity<Q,+,== >: Q a,b; a+b == b+a
-Associativity<Q,*,== >: Q a,b,c; a*(b*c) ==(a*b)*c
-Commutativity<Q,*,== >: Q a,b; a*b == b*a
+Associativity<Q,*,== >: Q a,b,c; a&(b&c) ==(a&b)&c
+Commutativity<Q,*,== >: Q a,b; a&b == b&a
RightNeutrality<Q,-,== > : Q a; a-Q() == a
SelfRemovability<Q,-,=v= >: Q a; a - a =v= Q()
@@ -635,7 +635,7 @@
valid for `Collectors`:
``
- + * -
+ + & -
Associativity == ==
Neutrality == ==
Commutativity == ==
@@ -645,12 +645,12 @@
In addition also symmetrical difference is valid for
`Qunatifiers` and the
-modified `operator *`.
+modified `operator &`.
``
SymmetricDifference<Q,== > : Q a,b,c; (a + b) - (a * b) == (a - b) + (b - a)
``
For a `TotalQuantifier` `Qt` symmetrical difference degenerates to
-a trivial form since `operator *` and `operator +` become identical
+a trivial form since `operator &` and `operator +` become identical
``
SymmetricDifference<Qt,== > : Qt a,b,c; (a + b) - (a + b) == (a - b) + (b - a) == 0
``
Modified: sandbox/itl/libs/itl/example/month_and_week_grid/month_and_week_grid.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/month_and_week_grid/month_and_week_grid.cpp (original)
+++ sandbox/itl/libs/itl/example/month_and_week_grid/month_and_week_grid.cpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -81,7 +81,7 @@
// For a period of two months, starting from today, the function
// computes a partitioning for months and weeks using intersection
-// operator *= on split_interval_sets.
+// operator &= on split_interval_sets.
void month_and_time_grid()
{
date someday = day_clock::local_day();
Modified: sandbox/itl/libs/itl/example/user_groups/user_groups.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/user_groups/user_groups.cpp (original)
+++ sandbox/itl/libs/itl/example/user_groups/user_groups.cpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -114,7 +114,7 @@
MembershipT all_users = med_users + admin_users;
- MembershipT super_users = med_users * admin_users;
+ MembershipT super_users = med_users & admin_users;
MembershipT::iterator med_ = med_users.begin();
cout << "----- Membership of medical staff -----------------------------------\n";
Modified: sandbox/itl/libs/itl/test/test_interval_map_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_shared.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -99,9 +99,9 @@
BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
//insecting emptieness
- (mt_map *= mt_u1) *= mt_u1;
+ (mt_map OP_INPLACE_INTERSECT mt_u1) OP_INPLACE_INTERSECT mt_u1;
BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
- (mt_map *= mt_interval) *= mt_interval;
+ (mt_map OP_INPLACE_INTERSECT mt_interval) OP_INPLACE_INTERSECT mt_interval;
BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
@@ -489,7 +489,7 @@
BOOST_CHECK_EQUAL( is_disjoint(left, right), false );
(all += left) += right;
- (section += left) *= right;
+ (section += left) OP_INPLACE_INTERSECT right;
all -= section;
complement += all;
//complement.erase(I3_5I);
@@ -497,7 +497,7 @@
BOOST_CHECK_EQUAL( is_disjoint(section, complement), true );
//JODO: There seems to be no intersection on maps of non set codomain type
- // that can be implemented via *= propagation. Intersectin on those types
+ // that can be implemented via OP_INPLACE_INTERSECT propagation. Intersectin on those types
// could be dome elementic defining it via intersection on the set of pairs.
//if(boost::is_same<T,int>::value)
//{
@@ -569,23 +569,23 @@
//--------------------------------------------------------------------------
//map_A [0 3) [6 9)
// 1 1
- // *= [1 8)
+ // OP_INPLACE_INTERSECT [1 8)
//map_AB -> [1 3) [6 8)
// 1 1
- // *= [2 7)
+ // OP_INPLACE_INTERSECT [2 7)
// -> [2 3) [6 7)
// 1 1
IntervalMap<T,U> map_A, map_AB, map_ab, map_ab2;
interval_set<T> set_B;
map_A.add(I0_3D_1).add(I6_9D_1);
map_AB = map_A;
- map_AB *= I1_8D;
+ map_AB OP_INPLACE_INTERSECT I1_8D;
map_ab.add(I1_3D_1).add(I6_8D_1);
BOOST_CHECK_EQUAL( map_AB, map_ab );
map_AB = map_A;
- (map_AB *= I1_8D) *= I2_7D;
+ (map_AB OP_INPLACE_INTERSECT I1_8D) OP_INPLACE_INTERSECT I2_7D;
map_ab2.add(I2_3D_1).add(I6_7D_1);
BOOST_CHECK_EQUAL( map_AB, map_ab2 );
@@ -593,10 +593,10 @@
//--------------------------------------------------------------------------
//map_A [0 3) [6 9)
// 1 1
- // *= [1 4) [5 8)
+ // OP_INPLACE_INTERSECT [1 4) [5 8)
//map_AB -> [1 3) [6 8)
// 1 1
- // *= [2 4) [5 7)
+ // OP_INPLACE_INTERSECT [2 4) [5 7)
// -> [2 3) [6 7)
// 1 1
map_A.clear();
@@ -604,7 +604,7 @@
set_B.add(I1_4D).add(I5_8D);
map_AB = map_A;
- map_AB *= set_B;
+ map_AB OP_INPLACE_INTERSECT set_B;
map_ab.clear();
map_ab.add(I1_3D_1).add(I6_8D_1);
BOOST_CHECK_EQUAL( map_AB, map_ab );
@@ -612,7 +612,7 @@
//--------------------------------------------------------------------------
//map_A [0 3) [6 9)
// 1 1
- // *= 1
+ // OP_INPLACE_INTERSECT 1
//map_AB -> [1]
// 1
@@ -620,7 +620,7 @@
//map_A.clear();
//map_A.add(I0_3D_1).add(I6_9D_1);
//map_AB = map_A;
- //map_AB *= v1;
+ //map_AB OP_INPLACE_INTERSECT v1;
//map_ab.clear();
//map_ab.add(v1);
Modified: sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -532,21 +532,21 @@
// split_interval_set
//--------------------------------------------------------------------------
//split_A [0 3) [6 9)
- // *= [1 8)
+ // OP_INPLACE_INTERSECT [1 8)
//split_AB -> [1 3) [6 8)
- // *= [2 7)
+ // OP_INPLACE_INTERSECT [2 7)
// -> [2 3) [6 7)
split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab2;
split_A.add(I0_3D).add(I6_9D);
split_AB = split_A;
- split_AB *= I1_8D;
+ split_AB OP_INPLACE_INTERSECT I1_8D;
split_ab.add(I1_3D).add(I6_8D);
BOOST_CHECK_EQUAL( split_AB, split_ab );
split_AB = split_A;
- (split_AB *= I1_8D) *= I2_7D;
+ (split_AB OP_INPLACE_INTERSECT I1_8D) OP_INPLACE_INTERSECT I2_7D;
split_ab2.add(I2_3D).add(I6_7D);
BOOST_CHECK_EQUAL( split_AB, split_ab2 );
@@ -554,20 +554,20 @@
//--------------------------------------------------------------------------
//split_A [0 3) [6 9)
- // *= 1
+ // OP_INPLACE_INTERSECT 1
//split_AB -> [1]
// += (1 7)
// -> [1](1 7)
split_A.add(I0_3D).add(I6_9D);
split_AB = split_A;
- split_AB *= v1;
+ split_AB OP_INPLACE_INTERSECT v1;
split_ab.clear();
split_ab.add(v1);
BOOST_CHECK_EQUAL( split_AB, split_ab );
split_AB = split_A;
- (split_AB *= v1) += interval<T>::open(v1,v7);
+ (split_AB OP_INPLACE_INTERSECT v1) += interval<T>::open(v1,v7);
split_ab2.clear();
split_ab2 += interval<T>::rightopen(v1,v7);
@@ -600,7 +600,7 @@
// split_interval_set
//--------------------------------------------------------------------------
//split_A [0 3) [6 9)
- //split_B *= [1 2)[2 4) [5 8)
+ //split_B OP_INPLACE_INTERSECT [1 2)[2 4) [5 8)
//split_AB -> [1 2)[2 3) [6 8)
split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab_jn;
separate_interval_set<T> sep_A, sep_B, sep_AB, sep_ab;
@@ -611,25 +611,25 @@
split_ab.add(I1_2D).add(I2_3D).add(I6_8D);
split_ab_jn.add(I1_3D).add(I6_8D);
split_AB = split_A;
- split_AB *= split_B;
+ split_AB OP_INPLACE_INTERSECT split_B;
BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
BOOST_CHECK_EQUAL( split_AB, split_ab );
//split_A [0 3) [6 9)
- //sep_B *= [1 2)[2 4) [5 8)
+ //sep_B OP_INPLACE_INTERSECT [1 2)[2 4) [5 8)
//split_AB -> [1 2)[2 3) [6 8)
split_AB = split_A;
sep_B = split_B;
- split_AB *= sep_B;
+ split_AB OP_INPLACE_INTERSECT sep_B;
BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
BOOST_CHECK_EQUAL( split_AB, split_ab );
//split_A [0 3) [6 9)
- //join_B *= [1 4) [5 8)
+ //join_B OP_INPLACE_INTERSECT [1 4) [5 8)
//split_AB -> [1 3) [6 8)
split_AB = split_A;
join_B = split_B;
- split_AB *= join_B;
+ split_AB OP_INPLACE_INTERSECT join_B;
BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
@@ -638,34 +638,34 @@
// separate_interval_set
//--------------------------------------------------------------------------
//sep_A [0 3) [6 9)
- //sep_B *= [1 2)[2 4) [5 8)
+ //sep_B OP_INPLACE_INTERSECT [1 2)[2 4) [5 8)
//sep_AB -> [1 2)[2 3) [6 8)
sep_ab = split_ab;
BOOST_CHECK_EQUAL( sep_ab.iterative_size(), 3 );
sep_AB = split_A;
sep_B = split_B;
- sep_AB *= sep_B;
+ sep_AB OP_INPLACE_INTERSECT sep_B;
BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
BOOST_CHECK_EQUAL( sep_AB, sep_ab );
//sep_A [0 3) [6 9)
- //split_B *= [1 2)[2 4) [5 8)
+ //split_B OP_INPLACE_INTERSECT [1 2)[2 4) [5 8)
//sep_AB -> [1 2)[2 3) [6 8)
sep_AB = split_A;
- sep_AB *= split_B;
+ sep_AB OP_INPLACE_INTERSECT split_B;
BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
BOOST_CHECK_EQUAL( sep_AB, sep_ab );
//sep_A [0 3) [6 9)
- //join_B *= [1 4) [5 8)
+ //join_B OP_INPLACE_INTERSECT [1 4) [5 8)
//sep_AB -> [1 3) [6 8)
separate_interval_set<T> sep_ab_jn = split_ab_jn;
sep_AB = split_A;
join_B = split_B;
- sep_AB *= join_B;
+ sep_AB OP_INPLACE_INTERSECT join_B;
BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 2 );
BOOST_CHECK_EQUAL( sep_AB, sep_ab_jn );
@@ -674,32 +674,32 @@
// separate_interval_set
//--------------------------------------------------------------------------
//join_A [0 3) [6 9)
- //join_B *= [1 4) [5 8)
+ //join_B OP_INPLACE_INTERSECT [1 4) [5 8)
//join_AB -> [1 3) [6 8)
join_ab = split_ab;
BOOST_CHECK_EQUAL( join_ab.iterative_size(), 2 );
join_AB = split_A;
join_B = split_B;
- join_AB *= sep_B;
+ join_AB OP_INPLACE_INTERSECT sep_B;
BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
BOOST_CHECK_EQUAL( join_AB, join_ab );
//join_A [0 3) [6 9)
- //split_B *= [1 2)[2 4) [5 8)
+ //split_B OP_INPLACE_INTERSECT [1 2)[2 4) [5 8)
//join_AB -> [1 3) [6 8)
join_AB = split_A;
- join_AB *= split_B;
+ join_AB OP_INPLACE_INTERSECT split_B;
BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
BOOST_CHECK_EQUAL( join_AB, join_ab );
//join_A [0 3) [6 9)
- //sep_B *= [1 2)[2 4) [5 8)
+ //sep_B OP_INPLACE_INTERSECT [1 2)[2 4) [5 8)
//join_AB -> [1 3) [6 8)
join_AB = split_A;
- join_AB *= sep_B;
+ join_AB OP_INPLACE_INTERSECT sep_B;
BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
BOOST_CHECK_EQUAL( join_AB, join_ab );
Modified: sandbox/itl/libs/itl/test/test_interval_set_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_shared.hpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -84,13 +84,13 @@
//insecting emptieness
//mt_set.insect(mt_interval).insect(mt_interval);
//BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
- (mt_set *= mt_interval) *= mt_interval;
+ (mt_set OP_INPLACE_INTERSECT mt_interval) OP_INPLACE_INTERSECT mt_interval;
BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
//insecting emptieness with elements
- (mt_set *= v1) *= v0;
+ (mt_set OP_INPLACE_INTERSECT v1) OP_INPLACE_INTERSECT v0;
BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
//insecting emptieness with intervals
- (mt_set *= I1_1I) *= I0_1I;
+ (mt_set OP_INPLACE_INTERSECT I1_1I) OP_INPLACE_INTERSECT I0_1I;
BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
//-------------------------------------------------------------------------
@@ -411,7 +411,7 @@
BOOST_CHECK_EQUAL( is_disjoint(left, right), false );
(all += left) += right;
- (section += left) *= right;
+ (section += left) OP_INPLACE_INTERSECT right;
(complement += all) -= section;
(all2 += section) += complement;
@@ -466,21 +466,21 @@
// IntervalSet
//--------------------------------------------------------------------------
//split_A [0 3) [6 9)
- // *= [1 8)
+ // OP_INPLACE_INTERSECT [1 8)
//split_AB -> [1 3) [6 8)
- // *= [2 7)
+ // OP_INPLACE_INTERSECT [2 7)
// -> [2 3) [6 7)
IntervalSet<T> split_A, split_B, split_AB, split_ab, split_ab2;
split_A.add(I0_3D).add(I6_9D);
split_AB = split_A;
- split_AB *= I1_8D;
+ split_AB OP_INPLACE_INTERSECT I1_8D;
split_ab.add(I1_3D).add(I6_8D);
BOOST_CHECK_EQUAL( split_AB, split_ab );
split_AB = split_A;
- (split_AB *= I1_8D) *= I2_7D;
+ (split_AB OP_INPLACE_INTERSECT I1_8D) OP_INPLACE_INTERSECT I2_7D;
split_ab2.add(I2_3D).add(I6_7D);
BOOST_CHECK_EQUAL( split_AB, split_ab2 );
@@ -488,20 +488,20 @@
//--------------------------------------------------------------------------
//split_A [0 3) [6 9)
- // *= 1
+ // OP_INPLACE_INTERSECT 1
//split_AB -> [1]
// += (1 7)
// -> [1](1 7)
split_A.add(I0_3D).add(I6_9D);
split_AB = split_A;
- split_AB *= v1;
+ split_AB OP_INPLACE_INTERSECT v1;
split_ab.clear();
split_ab.add(v1);
BOOST_CHECK_EQUAL( split_AB, split_ab );
split_AB = split_A;
- (split_AB *= v1) += interval<T>::open(v1,v7);
+ (split_AB OP_INPLACE_INTERSECT v1) += interval<T>::open(v1,v7);
split_ab2.clear();
split_ab2 += interval<T>::rightopen(v1,v7);
Modified: sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_interval/test_itl_interval.cpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -239,33 +239,33 @@
interval<T> I3_7D = interval<T>::rightopen(v3,v7);
interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- section = I3_7D; section *= I0_3D;
+ section = I3_7D; section OP_INPLACE_INTERSECT I0_3D;
BOOST_CHECK_EQUAL( I0_3D.is_disjoint(I3_7D), true );
BOOST_CHECK_EQUAL( section.empty(), true );
BOOST_CHECK_EQUAL( section, interval<T>() );
interval<T> I0_5D = interval<T>::rightopen(v0,v5);
- section = I3_7D; section *= I0_5D;
+ section = I3_7D; section OP_INPLACE_INTERSECT I0_5D;
BOOST_CHECK_EQUAL( section, interval<T>::rightopen(v3, v5) );
interval<T> I0_9D = interval<T>::rightopen(v0,v9);
- section = I3_7D; section *= I0_9D;
+ section = I3_7D; section OP_INPLACE_INTERSECT I0_9D;
BOOST_CHECK_EQUAL( section, I3_7D );
interval<T> I4_5I = interval<T>::closed(v4,v5);
- section = I3_7D; section *= I4_5I;
+ section = I3_7D; section OP_INPLACE_INTERSECT I4_5I;
BOOST_CHECK_EQUAL( section, I4_5I );
interval<T> C4_6D = interval<T>::open(v4,v6);
- section = I3_7D; section *= C4_6D;
+ section = I3_7D; section OP_INPLACE_INTERSECT C4_6D;
BOOST_CHECK_EQUAL( section, C4_6D );
interval<T> C4_9I = interval<T>::leftopen(v4,v9);
- section = I3_7D; section *= C4_9I;
+ section = I3_7D; section OP_INPLACE_INTERSECT C4_9I;
BOOST_CHECK_EQUAL( section, interval<T>::open(v4,v7) );
interval<T> I7_9I = interval<T>::closed(v7,v9);
- section = I3_7D; section *= I7_9I;
+ section = I3_7D; section OP_INPLACE_INTERSECT I7_9I;
BOOST_CHECK_EQUAL( I3_7D.exclusive_less(I7_9I), true );
BOOST_CHECK_EQUAL( I3_7D.is_disjoint(I7_9I), true );
BOOST_CHECK_EQUAL( section.empty(), true );
Modified: sandbox/itl/libs/itl_xt/test/itvsettester.h
==============================================================================
--- sandbox/itl/libs/itl_xt/test/itvsettester.h (original)
+++ sandbox/itl/libs/itl_xt/test/itvsettester.h 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -509,7 +509,7 @@
xx_uni_yy += yy;
xx_sec_yy = xx;
- xx_sec_yy *= yy;
+ xx_sec_yy OP_INPLACE_INTERSECT yy;
lhs = xx_uni_yy;
lhs -= xx_sec_yy;
Modified: sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp
==============================================================================
--- sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp (original)
+++ sandbox/itl/libs/itl_xt/test/meta_functors/meta_functors.cpp 2009-01-12 09:57:04 EST (Mon, 12 Jan 2009)
@@ -241,6 +241,12 @@
sec_map += make_pair(interval<int>::rightopen(3,7), 3);
//sec_map *= QuantifierT(make_pair(interval<int>::rightopen(3,7), 1));
+ QuantifierT sec_map2;
+
+ if(sec_map != sec_map2)
+ cout << "geht doch\n";
+
+
cout << "sec_map: " << sec_map << endl;
}
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