/usr/include/boost/icl/detail
NameSizeModeActions
associated_value.hpp15570644editdlrm
boost_config.hpp10320644editdlrm
concept_check.hpp9580644editdlrm
design_config.hpp56080644editdlrm
element_comparer.hpp57360644editdlrm
element_iterator.hpp146290644editdlrm
exclusive_less_than.hpp10510644editdlrm
interval_map_algo.hpp57410644editdlrm
interval_morphism.hpp42340644editdlrm
interval_set_algo.hpp205880644editdlrm
interval_subset_comparer.hpp121010644editdlrm
mapped_reference.hpp71690644editdlrm
map_algo.hpp26590644editdlrm
notate.hpp16870644editdlrm
on_absorbtion.hpp13410644editdlrm
relation_state.hpp12720644editdlrm
set_algo.hpp44940644editdlrm
std_set.hpp12890644editdlrm
subset_comparer.hpp81050644editdlrm
Edit: /usr/include/boost/icl/detail/interval_morphism.hpp (4234B)
/*-----------------------------------------------------------------------------+ Copyright (c) 2008-2009: Joachim Faulhaber +------------------------------------------------------------------------------+ Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENCE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +-----------------------------------------------------------------------------*/ #ifndef BOOST_ICL_DETAIL_INTERVAL_MORPHISM_HPP_JOFA_080315 #define BOOST_ICL_DETAIL_INTERVAL_MORPHISM_HPP_JOFA_080315 #include #include #include #include #include #include #include namespace boost{namespace icl { namespace segmental { template void atomize(ElementContainerT& result, const IntervalContainerT& src) { ICL_const_FORALL(typename IntervalContainerT, itv_, src) { const typename IntervalContainerT::key_type& itv = icl::key_value(itv_); typename IntervalContainerT::codomain_type coval = icl::co_value(itv_); for(typename IntervalContainerT::domain_type element = first(itv); element <= last(itv); ++element) icl::insert(result, icl::make_value(element, coval)); } } template void cluster(IntervalContainerT& result, const ElementContainerT& src) { typedef typename IntervalContainerT::key_type key_type; ICL_const_FORALL(typename ElementContainerT, element_, src) { const typename ElementContainerT::key_type& key = key_value(element_); const typename codomain_type_of::type& coval = co_value(element_); result += icl::make_value(key_type(key), coval); } } template struct atomizer { void operator()(AtomizedType& atomized, const ClusteredType& clustered) { segmental::atomize(atomized, clustered); } }; template struct clusterer { void operator()(ClusteredType& clustered, const AtomizedType& atomized) { segmental::cluster(clustered, atomized); } }; template struct joiner { void operator()(JointType& joint, SplitType& split) { icl::join(split); ICL_FORALL(typename SplitType, split_, split) joint.insert(*split_); } }; template struct identity_absorber { void operator()(AbsorberType& absorber, EnricherType& enricher) { icl::absorb_identities(enricher); ICL_FORALL(typename EnricherType, enricher_, enricher) absorber.insert(*enricher_); } }; } // namespace Interval template<> inline std::string binary_template_to_string::apply() { return "@"; } template<> inline std::string binary_template_to_string::apply() { return "&"; } template<> inline std::string binary_template_to_string::apply() { return "j"; } template<> inline std::string binary_template_to_string::apply() { return "a0"; } }} // namespace boost icl #endif // BOOST_ICL_DETAIL_INTERVAL_MORPHISM_HPP_JOFA_080315