SheafSystem  0.0.0.0
sheaf::interval_index_space_state Class Reference

An STL map implementation of class scattered_insertion_index_space_state optimized to efficiently represent id spaces that consist of a collection of closed intervals [begin, end] in both the domain id space and the range id space. Each entry (domain_end, range_end) in the _to_domain map represents the end of a interval in the range id space. If the range interval is not mapped to an domain interval, domain_end is the invalid index value. _to_domain.lower_bound(i) returns the end of the interval containing i and, if domain_end is valid, pod(i) can be computed from i, range_end, and domain_end. More...

#include <interval_index_space_state.h>

Inheritance diagram for sheaf::interval_index_space_state:
sheaf::scattered_insertion_index_space_state sheaf::gathered_insertion_index_space_state sheaf::explicit_index_space_state sheaf::any

Public Member Functions

virtual const std::string & class_name () const
 The name of this class. More...
 
virtual interval_index_space_stateclone () const
 Virtual constructor; create a new instance of the same type at this. More...
 
- Public Member Functions inherited from sheaf::scattered_insertion_index_space_state
void insert (pod_type xid, const scoped_index &xhub_id)
 Make id xid in this id space equivalent to xhub_id in the hub id space. synonym for insert(xid, xhub_id.hub_pod()). More...
 
void insert (pod_type xid, pod_type xhub_id)
 Make id xid in this id space equivalent to xhub_id in the hub id space. More...
 
- Public Member Functions inherited from sheaf::gathered_insertion_index_space_state
void push_back (const scoped_index &xhub_id)
 Make the next id in this space equivalent to xhub_id in the hub id space. synonym for push_back(xhub_id.hub_pod()). More...
 
void push_back (pod_type xid)
 Make the next id in this space equivalent to xhub_id in the hub id space. More...
 
void push (index_space_iterator &xitr, const scoped_index &xhub_id)
 Makes id xitr.id() in this id space equivalent to xhub_id in the hub id space. Increments all ids greater than xitr.id() by one, if any. Xitr will be set to the entry with id, xitr.id()+1. synonym for push(xitr, xhub_id.pod()). More...
 
void push (index_space_iterator &xitr, pod_type xhub_id)
 Makes id xitr.id() in this id space equivalent to xhub_id in the hub id space. Increments all ids greater than xitr.id() if any by one. Xitr will be set to the entry with id xitr.id()+1. More...
 
pod_type next_id () const
 The id inserted by the next call to push_back. More...
 
size_type remove (const scoped_index &xid, bool update_extrema)
 Removes the equivalence associated with xid.hub_pod(). synonym for remove_hub(xid.hub_pod(), xupdate_extrema). Returns the number of entries actually removed, either 0 or 1. More...
 
size_type remove (pod_type xid, bool update_extrema)
 Removes the equivalence associated with id xid. Returns the number of entries actually removed, either 0 or 1. More...
 
size_type remove_hub (pod_type xhub_id, bool update_extrema)
 Removes the equivalence associated with hub id xhub_id. Returns the number of entries actually removed, either 0 or 1. More...
 
void remove (index_space_iterator &xitr, bool update_extrema)
 Removes the equivalence associated with id xitr.pod(). Increments xitr to the next entry if any. More...
 
void gather ()
 Gathers this id space into a 0-based, contiguous interval. More...
 
void clear ()
 Delete all ids. More...
 
void put_is_persistent (bool xis_persistent)
 Set if this id space should be written to disk. More...
 
- Public Member Functions inherited from sheaf::explicit_index_space_state
virtual ~explicit_index_space_state ()
 Destructor. More...
 
const index_space_collectionhost () const
 The host collection (const version). More...
 
index_space_collectionhost ()
 The host collection (mutable version). More...
 
pod_type index () const
 The index of this id space. More...
 
const index_space_familyid_spaces () const
 The id space family for this (const version). More...
 
index_space_familyid_spaces ()
 The id space family for this (mutable version). More...
 
const hub_index_space_handlehub_id_space () const
 The hub id space. More...
 
size_type ct () const
 The number of members. More...
 
bool is_empty () const
 True if there are no ids in the space. More...
 
pod_type begin () const
 Beginning id of this space. More...
 
pod_type end () const
 Ending id of this space. More...
 
bool is_gathered () const
 True if begin() == 0 and end() == ct(). More...
 
bool contains (const scoped_index &xid) const
 True if this space contains an id equivalent to xid. synonym for contains_hub(xid.hub_pod()). More...
 
bool contains_hub (pod_type xid) const
 True if this space contains an id equivalent to xid in the unglued hub id space. synonym for contains_unglued_hub(xid) More...
 
virtual bool contains_glued_hub (pod_type xid) const
 True if this space contains an id equivalent to xid in the hub id space. More...
 
bool contains (pod_type xid, const scoped_index &xhub_id) const
 True if this space contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xid, xhub_id.hub_pod()). More...
 
virtual bool contains (pod_type xid, pod_type xhub_id) const
 True if this space contains an id xid equivalent to xhub_id in the hub id space. More...
 
pod_type pod (const scoped_index &xid) const
 The pod index in this space equivalent to xid. synonym for pod(xid.hub_pod()). More...
 
pod_type hub_pod (pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in this id space. synonym for unglued_hub_pod(xid). More...
 
virtual pod_type glued_hub_pod (pod_type xid) const
 The pod index in the glued hub id space equivalent to xid in this id space. More...
 
bool is_persistent () const
 True if this id space should be written to disk. More...
 
virtual void new_product_structure (const abstract_product_structure &xproduct)
 Creates a new product structure for this id space by cloning the product structure, xproduct. More...
 
virtual void delete_product_structure ()
 Deletes the product structure for this id space. More...
 
const abstract_product_structureproduct_structure () const
 The product structure for this id space (const version). More...
 
abstract_product_structureproduct_structure ()
 The product structure for this id space (mutable version). More...
 
bool has_product_structure () const
 True if this id space has a product structure. More...
 
- Public Member Functions inherited from sheaf::any
bool is_same_type (const any *other) const
 True if other is the same type as this. More...
 
virtual ~any ()
 Destructor. More...
 
bool invariant_check () const
 True if invariant checking is enabled. More...
 
void enable_invariant_check () const
 Enable invariant checking. More...
 
void disable_invariant_check () const
 Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More...
 
int disable_invariance_check_request_depth () const
 Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More...
 

Friends

class interval_index_space_iterator
 
class namespace_poset
 
SHEAF_DLL_SPEC size_t deep_size (const interval_index_space_state &xn, bool xinclude_shallow)
 The deep size of interval_index_space_state& xn. More...
 

SPACE FACTORY FACET

static interval_index_space_handle new_space (index_space_family &xid_spaces, const std::string &xname, bool xis_persistent, bool xmerge_mode)
 Create a new interval id space in the id space family xid_space at the next available id space index with name xname, persistence xis_persistent, and merge mode xmerge_mode. Returns a handle to the id space created. More...
 
static interval_index_space_handle new_space (index_space_family &xid_spaces, pod_type xid, const std::string &xname, bool xis_persistent, bool xmerge_mode)
 Create a new interval id space in the id space family xid_space at the id space index xid with name xname, persistence xis_persistent, and merge mode xmerge_mode. Returns a handle to the id space created. More...
 

INTERVAL_INDEX_SPACE_STATE FACET

static void insert_map_interval (pod_type xdomain_begin, pod_type xdomain_end, pod_type xrange_begin, pod_type xrange_end, std::map< pod_type, pod_type > &xmap, bool xmerge_mode)
 Maps the interval [xdomain_begin, xdomain_end] to. More...
 
static pod_type map_value (pod_type xid, const std::map< pod_type, pod_type > &xmap)
 The value of map xmap at id xid. More...
 
 interval_index_space_state ()
 Default constructor. More...
 
 interval_index_space_state (const interval_index_space_state &xother)
 Copy constructor; disabled. More...
 
virtual ~interval_index_space_state ()
 Destructor. More...
 

INTERVAL INDEX SPACE FACET

size_type invalid_entry_ct (pod_type xhub_begin, pod_type xhub_end) const
 The number of entries in the interval [xhub_begin, xhub_end] that have invalid map values. More...
 
void insert_interval (pod_type xbegin, pod_type xend, const scoped_index &xhub_begin, const scoped_index &xhub_end)
 Make the closed interval [xbegin, xend] equivalent to [xbegin.hub_pod(), xhub_end.hub_pod()]. synonym for insert_interval(xbegin, xend, xhub_begin.hub_pod(), xhub_end.hub_pod()). More...
 
void insert_interval (pod_type xbegin, pod_type xend, pod_type xhub_begin, pod_type xhub_end)
 Make the closed interval [xbegin, xend] equivalent to [xhub_begin, xhub_end]. More...
 
void push_interval (const scoped_index &xhub_begin, const scoped_index &xhub_end)
 Push the closed interval [xhub_begin.hub_pod(), xhub_end.hub_pod()] to the end of this space. synonym for push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()). More...
 
void push_interval (pod_type xhub_begin, pod_type xhub_end)
 Push the closed interval [xhub_begin, xhub_end] to the end of this space. More...
 
size_type remove_interval (const scoped_index &xhub_begin, const scoped_index &xhub_end)
 Removes the equivalance associated with the interval [xhub_begin.hub_pod(), xhub_end.hub_pod()]. synonym for remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()). Returns the number of entries actually removed, if any. More...
 
size_type remove_hub_interval (pod_type xhub_begin, pod_type xhub_end)
 Removes the equivalance associated with the interval [xhub_begin, xhub_end]. Returns the number of entries actually removed, if any. More...
 
size_type remove_interval (pod_type xbegin, pod_type xend)
 Removes the equivalance associated with the interval [xbegin, xend]. Returns the number of entries actually removed, if any. More...
 
pod_type interval_begin (const scoped_index &xid) const
 The beginning of the interval containing xid.hub_pod(). synonym for internval_begin(xid.hub_pod()). More...
 
pod_type interval_begin (pod_type xhub_id) const
 The beginning of the interval containing xhub_id. More...
 
pod_type interval_end (const scoped_index &xid) const
 The end of the interval containing xid.hub_pod. synonym for internval_end(xid.hub_pod()). More...
 
pod_type interval_end (pod_type xhub_id) const
 The end of the interval containing xhub_id. More...
 
bool merge_mode () const
 True if and only if compatible intervals should be merged. More...
 
void put_merge_mode (bool xvalue)
 Sets merge_mode() to xvalue. More...
 

GATHERED_INSERTION_INDEX_SPACE FACET

virtual void update_extrema ()
 Update the id extrema. More...
 
virtual void reserve (size_type xcapacity)
 Reserve enough memory for xcapacity number of ids. More...
 
virtual size_type capacity () const
 The number of ids reserved in memory. More...
 

MAP REPRESENTATION FACET

typedef std::map< pod_type, pod_typemap_type
 The type of the id maps. More...
 
typedef map_type to_domain_type
 The type of the range id to domain id map. More...
 
typedef map_type to_range_type
 The type of the domain id to range id map. More...
 
to_domain_type _to_domain
 The representation of the range id to domain id map. More...
 
to_range_type _to_range
 The representation of the domain id to range id map. More...
 
pod_type _capacity
 The capacity of this map. More...
 
bool _merge_mode
 True if and only if compatible intervals should be merged. More...
 
void map_rep_insert_interval (pod_type xdomain_begin, pod_type xdomain_end, pod_type xrange_begin, pod_type xrange_end)
 Inserts the intervals [xdomain_begin, xdomain_end] and [xrange_begin, xrange_end] into the map representation. More...
 
size_type map_rep_remove_interval (pod_type xbegin, pod_type xend, bool xis_range_id)
 Makes the interval [xbegin, xend) and its image unmapped in the map representation. Returns the number of entries actually unmapped, if any. More...
 
virtual void map_rep_insert_entry (pod_type xdomain_id, pod_type xrange_id)
 Inserts entry (xdomain_id, xrange_id) into the map representation. More...
 
virtual void map_rep_push_back (pod_type xrange_id)
 Inserts entry (next_id(), xrange_id) into the map representation. More...
 
virtual void map_rep_push (index_space_iterator &xitr, pod_type xrange_id)
 Inserts entry (xitr.pod(), xrange_id) into the map representation. Increments all domain ids greater than xitr.pod() by one. Sets xitr to the entry at xitr.pod()+1. More...
 
virtual size_type map_rep_remove_entry (pod_type xid, bool xis_range_id)
 Removes the entry containing range id xid (xis_range_id true) or domain id xid (xis_range_id false) from the map representation; returns the number of entries actully removed, either 0 or 1. More...
 
virtual void map_rep_remove_entry (index_space_iterator &xitr)
 Removes the equivalence associated with id xitr.pod()/ Increments xitr to the next entry if any. More...
 
virtual void map_rep_clear ()
 Removes all entrires from the map representation. More...
 
virtual void map_rep_gather ()
 Gathers the map representation into an interval. More...
 
void print_map_rep (std::ostream &xos) const
 Inserts the map representation into ostream xos. More...
 

EXPLICIT_INDEX_SPACE_STATE FACET

virtual interval_index_space_stateoperator= (const explicit_index_space_state &xother)
 Assignment operator. More...
 
virtual bool operator== (const explicit_index_space_state &xother) const
 True if this is equivalent to xother. More...
 
virtual size_type deep_size (bool xinclude_shallow) const
 The deep size of this. More...
 

INDEX SPACE FACET

virtual bool contains (pod_type xid) const
 True if this space contains id xid. More...
 
virtual bool contains_unglued_hub (pod_type xid) const
 True if this space contains an id equivalent to xid in the unglued hub id space. More...
 
virtual pod_type pod (pod_type xid) const
 The pod index in this space equivalent to xid in the hub id space. More...
 
virtual pod_type unglued_hub_pod (pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in this id space. More...
 

HANDLE POOL FACET

static size_type handle_pool_ct ()
 The number of handles in the pool. More...
 
static size_type handle_pool_deep_size ()
 The deep size of the handle pool. More...
 
virtual index_space_handleget_id_space () const
 The id space handle with this state. More...
 
virtual void release_id_space (index_space_handle &xid_space) const
 Release the id space handle xid_space. More...
 
virtual bool allocated_id_space (const index_space_handle &xid_space) const
 True if and only if id space handle xid_space was allocated by the handle pool. More...
 

ITERATOR POOL FACET

static size_type iterator_pool_ct ()
 The number of iterators in the pool. More...
 
static size_type iterator_pool_deep_size ()
 The deep size of the iterator pool. More...
 
virtual index_space_iteratorget_iterator () const
 Allocates an id space iterator from the iterator pool. More...
 
virtual void release_iterator (index_space_iterator &xitr) const
 Returns the id space iterator xitr to the iterator pool. More...
 
virtual bool allocated_iterator (const index_space_iterator &xitr) const
 True if and only if id space iterator xitr was allocated by the iterator pool. More...
 

ANY FACET

virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 
virtual bool invariant () const
 Class invariant. More...
 

Additional Inherited Members

- Public Types inherited from sheaf::explicit_index_space_state
typedef pod_index_type pod_type
 The "plain old data" index type for this. More...
 
- Static Public Member Functions inherited from sheaf::explicit_index_space_state
static factory< explicit_index_space_state > & id_space_factory ()
 A factory for making descendants of this class. More...
 
- Protected Member Functions inherited from sheaf::scattered_insertion_index_space_state
 scattered_insertion_index_space_state ()
 Default constructor. More...
 
 scattered_insertion_index_space_state (const scattered_insertion_index_space_state &xother)
 Copy constructor; disabled. More...
 
virtual ~scattered_insertion_index_space_state ()
 Destructor. More...
 
- Protected Member Functions inherited from sheaf::gathered_insertion_index_space_state
 gathered_insertion_index_space_state ()
 Default constructor. More...
 
 gathered_insertion_index_space_state (const gathered_insertion_index_space_state &xother)
 Copy constructor; disabled. More...
 
virtual ~gathered_insertion_index_space_state ()
 Destructor. More...
 
virtual void update_extrema_after_remove ()
 Update the id extrema after a remove operation. More...
 
void update_extrema (pod_type xid)
 Update the extrema for the inserted id xid. More...
 
- Protected Member Functions inherited from sheaf::explicit_index_space_state
 explicit_index_space_state ()
 Default constructor. More...
 
 explicit_index_space_state (const explicit_index_space_state &xother)
 Copy constructor; disabled. More...
 
void new_state (index_space_family &xid_spaces, const std::string &xname, bool xis_persistent)
 Create a new id space state in the id space family xid_spaces at the next available id space index with name xname, and persistence xis_persistent. More...
 
void new_state (index_space_family &xid_spaces, pod_type xid, const std::string &xname, bool xis_persistent)
 Create a new id space state in the id space family xid_spaces at the id space index xid with name xname, and persistence xis_persistent. More...
 
void invalidate_extrema ()
 Invalidate the extrema. More...
 
void attach (explicit_index_space_handle &xid_space) const
 Attach the id space handle xid_space to this state. More...
 
void attach (explicit_index_space_iterator &xitr) const
 Attach the id space iterator xitr to this state. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 
- Protected Attributes inherited from sheaf::explicit_index_space_state
index_space_collection_host
 The host collection. More...
 
pod_type _index
 The index of this id space. More...
 
size_type _ct
 The number of members. More...
 
pod_type _begin
 Beginning id of this space. More...
 
pod_type _end
 Ending id of this space. More...
 
bool _is_persistent
 True if this id space should be written to disk. More...
 
abstract_product_structure_product
 The product structure for this id space. More...
 

Detailed Description

An STL map implementation of class scattered_insertion_index_space_state optimized to efficiently represent id spaces that consist of a collection of closed intervals [begin, end] in both the domain id space and the range id space. Each entry (domain_end, range_end) in the _to_domain map represents the end of a interval in the range id space. If the range interval is not mapped to an domain interval, domain_end is the invalid index value. _to_domain.lower_bound(i) returns the end of the interval containing i and, if domain_end is valid, pod(i) can be computed from i, range_end, and domain_end.

The _to_range map and hub_pod(i) work in a similar manner. See the comments in function insert_interval for a more detailed discussion.

Definition at line 67 of file interval_index_space_state.h.

Member Typedef Documentation

◆ map_type

The type of the id maps.

Definition at line 381 of file interval_index_space_state.h.

◆ to_domain_type

The type of the range id to domain id map.

Definition at line 386 of file interval_index_space_state.h.

◆ to_range_type

The type of the domain id to range id map.

Definition at line 396 of file interval_index_space_state.h.

Constructor & Destructor Documentation

◆ interval_index_space_state() [1/2]

sheaf::interval_index_space_state::interval_index_space_state ( )
protected

◆ interval_index_space_state() [2/2]

sheaf::interval_index_space_state::interval_index_space_state ( const interval_index_space_state xother)
inlineprotected

Copy constructor; disabled.

Definition at line 144 of file interval_index_space_state.h.

References sheaf::gathered_insertion_index_space_state::update_extrema().

◆ ~interval_index_space_state()

sheaf::interval_index_space_state::~interval_index_space_state ( )
protectedvirtual

Destructor.

Definition at line 365 of file interval_index_space_state.cc.

References insert_interval().

Referenced by interval_index_space_state().

Member Function Documentation

◆ allocated_id_space()

bool sheaf::interval_index_space_state::allocated_id_space ( const index_space_handle xid_space) const
virtual

True if and only if id space handle xid_space was allocated by the handle pool.

Postcondition
  • is_basic_query

Implements sheaf::explicit_index_space_state.

Definition at line 1615 of file interval_index_space_state.cc.

References iterator_pool_ct().

Referenced by release_id_space().

◆ allocated_iterator()

bool sheaf::interval_index_space_state::allocated_iterator ( const index_space_iterator xitr) const
virtual

True if and only if id space iterator xitr was allocated by the iterator pool.

Postcondition
  • is_basic_query

Implements sheaf::explicit_index_space_state.

Definition at line 1752 of file interval_index_space_state.cc.

References class_name().

Referenced by map_rep_push(), map_rep_remove_entry(), and release_iterator().

◆ capacity()

sheaf::size_type sheaf::interval_index_space_state::capacity ( ) const
virtual

The number of ids reserved in memory.

Postcondition
  • is_basic_query

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 931 of file interval_index_space_state.cc.

References _capacity, and print_map_rep().

Referenced by interval_index_space_state(), and reserve().

◆ class_name()

const std::string & sheaf::interval_index_space_state::class_name ( ) const
virtual

The name of this class.

Reimplemented from sheaf::scattered_insertion_index_space_state.

Definition at line 1804 of file interval_index_space_state.cc.

References clone().

Referenced by allocated_iterator().

◆ clone()

sheaf::interval_index_space_state * sheaf::interval_index_space_state::clone ( ) const
virtual

Virtual constructor; create a new instance of the same type at this.

Postcondition
  • result != 0
  • is_same_type(result)

Implements sheaf::explicit_index_space_state.

Definition at line 1812 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::id_space_factory(), interval_index_space_state(), is_ancestor_of(), and sheaf::any::is_same_type().

Referenced by class_name().

◆ contains()

bool sheaf::interval_index_space_state::contains ( pod_type  xid) const
virtual

True if this space contains id xid.

Postcondition
  • is_basic_query

Implements sheaf::explicit_index_space_state.

Definition at line 1439 of file interval_index_space_state.cc.

References _to_range, contains_unglued_hub(), and sheaf::is_valid().

Referenced by map_rep_insert_entry(), map_rep_push(), map_rep_push_back(), map_rep_remove_entry(), operator=(), pod(), and remove_interval().

◆ contains_unglued_hub()

bool sheaf::interval_index_space_state::contains_unglued_hub ( pod_type  xid) const
virtual

True if this space contains an id equivalent to xid in the unglued hub id space.

Postcondition
  • is_basic_query

Implements sheaf::explicit_index_space_state.

Definition at line 1460 of file interval_index_space_state.cc.

References _to_domain, sheaf::is_valid(), and pod().

Referenced by contains(), and unglued_hub_pod().

◆ deep_size()

sheaf::size_type sheaf::interval_index_space_state::deep_size ( bool  xinclude_shallow) const
virtual

The deep size of this.

Postcondition
  • result >= 0

Reimplemented from sheaf::explicit_index_space_state.

Definition at line 1379 of file interval_index_space_state.cc.

References sheaf::deep_size(), and operator=().

◆ get_id_space()

sheaf::index_space_handle & sheaf::interval_index_space_state::get_id_space ( ) const
virtual

The id space handle with this state.

Postcondition
  • result.is_attached()

Implements sheaf::explicit_index_space_state.

Definition at line 1568 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::attach(), sheaf::explicit_index_space_handle::is_attached(), and release_id_space().

Referenced by handle_pool_deep_size().

◆ get_iterator()

sheaf::index_space_iterator & sheaf::interval_index_space_state::get_iterator ( ) const
virtual

Allocates an id space iterator from the iterator pool.

Postcondition
  • result.is_attached()

Implements sheaf::explicit_index_space_state.

Definition at line 1705 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::attach(), sheaf::explicit_index_space_iterator::is_attached(), and release_iterator().

Referenced by iterator_pool_deep_size().

◆ handle_pool_ct()

sheaf::size_type sheaf::interval_index_space_state::handle_pool_ct ( )
static

The number of handles in the pool.

Postcondition
  • result >= 0

Definition at line 1530 of file interval_index_space_state.cc.

References handle_pool_deep_size().

Referenced by unglued_hub_pod().

◆ handle_pool_deep_size()

sheaf::size_type sheaf::interval_index_space_state::handle_pool_deep_size ( )
static

The deep size of the handle pool.

Postcondition
  • result >= 0

Definition at line 1549 of file interval_index_space_state.cc.

References sheaf::deep_size(), and get_id_space().

Referenced by handle_pool_ct().

◆ insert_interval() [1/2]

void sheaf::interval_index_space_state::insert_interval ( pod_type  xbegin,
pod_type  xend,
const scoped_index xhub_begin,
const scoped_index xhub_end 
)

Make the closed interval [xbegin, xend] equivalent to [xbegin.hub_pod(), xhub_end.hub_pod()]. synonym for insert_interval(xbegin, xend, xhub_begin.hub_pod(), xhub_end.hub_pod()).

Precondition
  • xhub_begin.in_scope()
  • xhub_end.in_scope()
  • precondition_of(insert_interval(xbegin, xend. xhub_begin.hub_pod(), xhub_end.hub_pod()))
Postcondition
  • postcondition_of(insert_interval(xbegin, xend, xhub_begin.hub_pod(), xhub_end.hub_pod()))

Definition at line 391 of file interval_index_space_state.cc.

References sheaf::scoped_index::hub_pod(), and sheaf::scoped_index::in_scope().

Referenced by sheaf::interval_index_space_handle::insert_interval(), push_interval(), and ~interval_index_space_state().

◆ insert_interval() [2/2]

void sheaf::interval_index_space_state::insert_interval ( pod_type  xbegin,
pod_type  xend,
pod_type  xhub_begin,
pod_type  xhub_end 
)

Make the closed interval [xbegin, xend] equivalent to [xhub_begin, xhub_end].

Precondition
  • xhub_begin <= xhub_end
  • xbegin <= xend
  • (xhub_end - xhub_begin) == (xend - xbegin)
Postcondition
  • for( pod_type i=xhub_begin ; i<=xhub_end ; ++i ) pod(i) == xbegin+(i-xhub_begin)
  • for( pod_type i=xbegin ; i<=xend ; ++i ) hub_pod(i) == xhub_begin+(i-xbegin)

Definition at line 422 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::_begin, sheaf::explicit_index_space_state::_ct, sheaf::explicit_index_space_state::_end, sheaf::explicit_index_space_state::ct(), sheaf::explicit_index_space_state::hub_pod(), invalid_entry_ct(), map_rep_insert_interval(), pod(), and push_interval().

◆ insert_map_interval()

void sheaf::interval_index_space_state::insert_map_interval ( pod_type  xdomain_begin,
pod_type  xdomain_end,
pod_type  xrange_begin,
pod_type  xrange_end,
std::map< pod_type, pod_type > &  xmap,
bool  xmerge_mode 
)
staticprotected

Maps the interval [xdomain_begin, xdomain_end] to.

Definition at line 128 of file interval_index_space_state.cc.

References sheaf::is_valid(), and map_value().

Referenced by map_rep_insert_interval(), map_rep_remove_interval(), and new_space().

◆ interval_begin() [1/2]

sheaf::interval_index_space_state::pod_type sheaf::interval_index_space_state::interval_begin ( const scoped_index xid) const

The beginning of the interval containing xid.hub_pod(). synonym for internval_begin(xid.hub_pod()).

Precondition
  • xid.in_scope()
  • precondition_of(interval_begin(xid.hub_pod()))
Postcondition
  • postcondition_of(interval_begin(xid.hub_pod()))

Definition at line 630 of file interval_index_space_state.cc.

References sheaf::scoped_index::hub_pod(), and sheaf::scoped_index::in_scope().

Referenced by sheaf::interval_index_space_handle::interval_begin(), and remove_interval().

◆ interval_begin() [2/2]

sheaf::interval_index_space_state::pod_type sheaf::interval_index_space_state::interval_begin ( pod_type  xhub_id) const

The beginning of the interval containing xhub_id.

Postcondition
  • !is_valid(result) || contains_hub(result)

Definition at line 652 of file interval_index_space_state.cc.

References _to_domain, sheaf::explicit_index_space_state::contains_hub(), interval_end(), sheaf::invalid_pod_index(), and sheaf::is_valid().

◆ interval_end() [1/2]

sheaf::interval_index_space_state::pod_type sheaf::interval_index_space_state::interval_end ( const scoped_index xid) const

The end of the interval containing xid.hub_pod. synonym for internval_end(xid.hub_pod()).

Precondition
  • xid.in_scope()
  • precondition_of(interval_end(xid.hub_pod()))
Postcondition
  • postcondition_of(interval_end(xid.hub_pod()))

Definition at line 688 of file interval_index_space_state.cc.

References sheaf::scoped_index::hub_pod(), and sheaf::scoped_index::in_scope().

Referenced by interval_begin(), and sheaf::interval_index_space_handle::interval_end().

◆ interval_end() [2/2]

sheaf::interval_index_space_state::pod_type sheaf::interval_index_space_state::interval_end ( pod_type  xhub_id) const

The end of the interval containing xhub_id.

Postcondition
  • !is_valid(result) || contains_hub(result)

Definition at line 710 of file interval_index_space_state.cc.

References _to_domain, sheaf::explicit_index_space_state::contains_hub(), sheaf::invalid_pod_index(), sheaf::is_valid(), and merge_mode().

◆ invalid_entry_ct()

sheaf::size_type sheaf::interval_index_space_state::invalid_entry_ct ( pod_type  xhub_begin,
pod_type  xhub_end 
) const
protected

The number of entries in the interval [xhub_begin, xhub_end] that have invalid map values.

Postcondition
  • result >= 0

Definition at line 784 of file interval_index_space_state.cc.

References _to_domain, sheaf::is_valid(), and update_extrema().

Referenced by insert_interval(), and put_merge_mode().

◆ invariant()

◆ is_ancestor_of()

bool sheaf::interval_index_space_state::is_ancestor_of ( const any other) const
virtual

Conformance test; true if other conforms to this.

Precondition
  • other != 0

Reimplemented from sheaf::scattered_insertion_index_space_state.

Definition at line 1862 of file interval_index_space_state.cc.

References invariant().

Referenced by clone(), operator=(), and operator==().

◆ iterator_pool_ct()

sheaf::size_type sheaf::interval_index_space_state::iterator_pool_ct ( )
static

The number of iterators in the pool.

Postcondition
  • result >= 0

Definition at line 1667 of file interval_index_space_state.cc.

References iterator_pool_deep_size().

Referenced by allocated_id_space().

◆ iterator_pool_deep_size()

sheaf::size_type sheaf::interval_index_space_state::iterator_pool_deep_size ( )
static

The deep size of the iterator pool.

Postcondition
  • result >= 0

Definition at line 1686 of file interval_index_space_state.cc.

References sheaf::deep_size(), and get_iterator().

Referenced by iterator_pool_ct().

◆ map_rep_clear()

void sheaf::interval_index_space_state::map_rep_clear ( )
protectedvirtual

Removes all entrires from the map representation.

Postcondition
  • -unexecutable( "map rep is empty" )

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 1237 of file interval_index_space_state.cc.

References _to_domain, _to_range, and map_rep_gather().

Referenced by map_rep_remove_entry().

◆ map_rep_gather()

void sheaf::interval_index_space_state::map_rep_gather ( )
protectedvirtual

Gathers the map representation into an interval.

Todo:
Need to alter this algorthim to take into account ids deleted from the hub id space. This includes adjusting the interval, adjusting _ct and updating the range extrema.
Postcondition
  • -unexecutable( "map rep is gathered" )

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 1260 of file interval_index_space_state.cc.

References _to_domain, _to_range, sheaf::invalid_pod_index(), sheaf::is_valid(), and operator==().

Referenced by map_rep_clear().

◆ map_rep_insert_entry()

void sheaf::interval_index_space_state::map_rep_insert_entry ( pod_type  xdomain_id,
pod_type  xrange_id 
)
protectedvirtual

Inserts entry (xdomain_id, xrange_id) into the map representation.

Precondition
  • !contains_hub(xrange_id)
  • !contains(xdomain_id)
Postcondition
  • contains(xdomain_id, xrange_id)

Implements sheaf::scattered_insertion_index_space_state.

Definition at line 1106 of file interval_index_space_state.cc.

References contains(), sheaf::explicit_index_space_state::contains_hub(), map_rep_insert_interval(), and map_rep_push_back().

Referenced by map_rep_remove_interval().

◆ map_rep_insert_interval()

void sheaf::interval_index_space_state::map_rep_insert_interval ( pod_type  xdomain_begin,
pod_type  xdomain_end,
pod_type  xrange_begin,
pod_type  xrange_end 
)
protected

Inserts the intervals [xdomain_begin, xdomain_end] and [xrange_begin, xrange_end] into the map representation.

Precondition
  • xrange_begin <= xrange_end
  • xdomain_begin <= xdomain_end
  • (xrange_end - xrange_begin) == (xdomain_end - xdomain_begin)
Postcondition
  • for( pod_type i=0 ; i<xrange_end-xrange_begin+1 ; ++i ) pod(xrange_begin+i) == xdomain_begin+i
  • for( pod_type i=0 ; i<xdomain_end-xdomain_begin+1 ; ++i ) hub_pod(xdomain_begin+i) == xrange_begin+i

Definition at line 998 of file interval_index_space_state.cc.

References _merge_mode, _to_domain, _to_range, sheaf::explicit_index_space_state::hub_pod(), insert_map_interval(), map_rep_remove_interval(), and pod().

Referenced by insert_interval(), map_rep_insert_entry(), map_rep_push_back(), and print_map_rep().

◆ map_rep_push()

void sheaf::interval_index_space_state::map_rep_push ( index_space_iterator xitr,
pod_type  xrange_id 
)
protectedvirtual

Inserts entry (xitr.pod(), xrange_id) into the map representation. Increments all domain ids greater than xitr.pod() by one. Sets xitr to the entry at xitr.pod()+1.

Precondition
  • allocated_iterator(xitr)
  • !contains_hub(xrange_id)
Todo:
Implement.

Not Implemented.

Postcondition
  • contains(old_itr_pod, xrange_id)
  • xitr.pod() == old_itr_pod+1
  • xitr.hub_pod() == old_itr_hub_pod

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 1153 of file interval_index_space_state.cc.

References allocated_iterator(), contains(), sheaf::explicit_index_space_state::contains_hub(), sheaf::index_space_iterator::hub_pod(), map_rep_remove_entry(), and sheaf::index_space_iterator::pod().

Referenced by map_rep_push_back().

◆ map_rep_push_back()

void sheaf::interval_index_space_state::map_rep_push_back ( pod_type  xrange_id)
protectedvirtual

Inserts entry (next_id(), xrange_id) into the map representation.

Precondition
  • !contains_hub(xrange_id)
Postcondition
  • contains(old_next_id, xrange_id)

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 1128 of file interval_index_space_state.cc.

References contains(), sheaf::explicit_index_space_state::contains_hub(), map_rep_insert_interval(), map_rep_push(), and sheaf::gathered_insertion_index_space_state::next_id().

Referenced by map_rep_insert_entry().

◆ map_rep_remove_entry() [1/2]

sheaf::size_type sheaf::interval_index_space_state::map_rep_remove_entry ( pod_type  xid,
bool  xis_range_id 
)
protectedvirtual

Removes the entry containing range id xid (xis_range_id true) or domain id xid (xis_range_id false) from the map representation; returns the number of entries actully removed, either 0 or 1.

Postcondition
  • xis_range_id ? !contains_hub(xid) : !contains(xid)

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 1184 of file interval_index_space_state.cc.

References _to_range, contains(), sheaf::explicit_index_space_state::contains_hub(), map_rep_remove_interval(), and map_value().

Referenced by map_rep_push().

◆ map_rep_remove_entry() [2/2]

void sheaf::interval_index_space_state::map_rep_remove_entry ( index_space_iterator xitr)
protectedvirtual

Removes the equivalence associated with id xitr.pod()/ Increments xitr to the next entry if any.

Precondition
  • allocated_iterator(xitr)
  • !xitr.is_done()
  • contains(xitr.pod())
Todo:
Implement.

Not Implemented.

Postcondition
  • !contains(old_itr_id)
  • !contains(old_itr_hub_id)
  • xitr.is_done() || xitr.pod() > old_itr_id

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 1207 of file interval_index_space_state.cc.

References allocated_iterator(), contains(), sheaf::index_space_iterator::hub_pod(), sheaf::index_space_iterator::is_done(), map_rep_clear(), and sheaf::index_space_iterator::pod().

◆ map_rep_remove_interval()

sheaf::size_type sheaf::interval_index_space_state::map_rep_remove_interval ( pod_type  xbegin,
pod_type  xend,
bool  xis_range_id 
)
protected

Makes the interval [xbegin, xend) and its image unmapped in the map representation. Returns the number of entries actually unmapped, if any.

Precondition
  • xbegin <= xend

Definition at line 1031 of file interval_index_space_state.cc.

References _merge_mode, _to_domain, _to_range, insert_map_interval(), sheaf::invalid_pod_index(), sheaf::is_valid(), map_rep_insert_entry(), and map_value().

Referenced by map_rep_insert_interval(), map_rep_remove_entry(), remove_hub_interval(), and remove_interval().

◆ map_value()

sheaf::interval_index_space_state::pod_type sheaf::interval_index_space_state::map_value ( pod_type  xid,
const std::map< pod_type, pod_type > &  xmap 
)
staticprotected

◆ merge_mode()

bool sheaf::interval_index_space_state::merge_mode ( ) const

True if and only if compatible intervals should be merged.

Postcondition
  • is_basic_query

Definition at line 744 of file interval_index_space_state.cc.

References _merge_mode, and put_merge_mode().

Referenced by interval_end(), interval_index_space_state(), sheaf::interval_index_space_handle::merge_mode(), and put_merge_mode().

◆ new_space() [1/2]

sheaf::interval_index_space_handle sheaf::interval_index_space_state::new_space ( index_space_family xid_spaces,
const std::string &  xname,
bool  xis_persistent,
bool  xmerge_mode 
)
static

Create a new interval id space in the id space family xid_space at the next available id space index with name xname, persistence xis_persistent, and merge mode xmerge_mode. Returns a handle to the id space created.

Precondition
  • !xname.empty()
  • !xid_spaces.contains(xname)
Postcondition
  • &result.id_spaces() == &xid_spaces
  • xid_spaces.contains(xname)
  • result.conforms_to_state(xname)
  • result.is_persistent() == xis_persistent
  • result.name() == xname
  • result.merge_mode() == xmerge_mode

Definition at line 37 of file interval_index_space_state.cc.

References sheaf::interval_index_space_handle::conforms_to_state(), sheaf::index_space_family::contains(), sheaf::explicit_index_space_handle::id_spaces(), interval_index_space_state(), sheaf::explicit_index_space_handle::is_persistent(), sheaf::interval_index_space_handle::merge_mode(), and sheaf::index_space_handle::name().

Referenced by sheaf::primary_sum_index_space_state::new_gathered_id_space(), and sheaf::interval_index_space_handle::new_space().

◆ new_space() [2/2]

sheaf::interval_index_space_handle sheaf::interval_index_space_state::new_space ( index_space_family xid_spaces,
pod_type  xid,
const std::string &  xname,
bool  xis_persistent,
bool  xmerge_mode 
)
static

Create a new interval id space in the id space family xid_space at the id space index xid with name xname, persistence xis_persistent, and merge mode xmerge_mode. Returns a handle to the id space created.

Precondition
  • !xid_spaces.contains(xid)
  • xid_spaces.is_explicit_interval(xid)
  • !xname.empty()
  • !xid_spaces.contains(xname)
Postcondition
  • &result.id_spaces() == &xid_spaces
  • xid_spaces.contains(xname)
  • result.conforms_to_state(xname)
  • result.index() == xid
  • result.is_persistent() == xis_persistent
  • result.name() == xname
  • result.merge_mode() == xmerge_mode

Definition at line 74 of file interval_index_space_state.cc.

References sheaf::interval_index_space_handle::conforms_to_state(), sheaf::index_space_family::contains(), sheaf::explicit_index_space_handle::id_spaces(), sheaf::explicit_index_space_handle::index(), insert_map_interval(), interval_index_space_state(), sheaf::index_space_family::is_explicit_interval(), sheaf::explicit_index_space_handle::is_persistent(), sheaf::interval_index_space_handle::merge_mode(), and sheaf::index_space_handle::name().

◆ operator=()

sheaf::interval_index_space_state & sheaf::interval_index_space_state::operator= ( const explicit_index_space_state xother)
protectedvirtual

Assignment operator.

Precondition
  • is_ancestor_of(&xother)
Postcondition
  • (*this) == xother

Reimplemented from sheaf::scattered_insertion_index_space_state.

Definition at line 1400 of file interval_index_space_state.cc.

References _capacity, _merge_mode, _to_domain, _to_range, contains(), invariant(), and is_ancestor_of().

Referenced by deep_size().

◆ operator==()

bool sheaf::interval_index_space_state::operator== ( const explicit_index_space_state xother) const
virtual

True if this is equivalent to xother.

Precondition
  • is_ancestor_of(&xother)

Reimplemented from sheaf::scattered_insertion_index_space_state.

Definition at line 1353 of file interval_index_space_state.cc.

References _capacity, _merge_mode, _to_domain, _to_range, deep_size, is_ancestor_of(), and sheaf::scattered_insertion_index_space_state::operator==().

Referenced by map_rep_gather().

◆ pod()

sheaf::explicit_index_space_state::pod_type sheaf::interval_index_space_state::pod ( pod_type  xid) const
virtual

The pod index in this space equivalent to xid in the hub id space.

Postcondition
  • !is_valid(result) || contains(result)

Implements sheaf::explicit_index_space_state.

Definition at line 1481 of file interval_index_space_state.cc.

References _to_domain, contains(), sheaf::is_valid(), map_value(), and unglued_hub_pod().

Referenced by contains_unglued_hub(), insert_interval(), map_rep_insert_interval(), and push_interval().

◆ print_map_rep()

void sheaf::interval_index_space_state::print_map_rep ( std::ostream &  xos) const

Inserts the map representation into ostream xos.

Postcondition
  • is_basic_query

Definition at line 961 of file interval_index_space_state.cc.

References _to_domain, _to_range, and map_rep_insert_interval().

Referenced by capacity(), and sheaf::interval_index_space_handle::print_map_rep().

◆ push_interval() [1/2]

void sheaf::interval_index_space_state::push_interval ( const scoped_index xhub_begin,
const scoped_index xhub_end 
)

Push the closed interval [xhub_begin.hub_pod(), xhub_end.hub_pod()] to the end of this space. synonym for push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()).

Precondition
  • xhub_begin.in_scope()
  • xhub_end.in_scope()
  • precondition_of(push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))
Postcondition
  • postcondition_of(push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))

Definition at line 486 of file interval_index_space_state.cc.

References sheaf::scoped_index::hub_pod(), and sheaf::scoped_index::in_scope().

Referenced by insert_interval(), and sheaf::interval_index_space_handle::push_interval().

◆ push_interval() [2/2]

void sheaf::interval_index_space_state::push_interval ( pod_type  xhub_begin,
pod_type  xhub_end 
)

Push the closed interval [xhub_begin, xhub_end] to the end of this space.

Precondition
  • xhub_begin <= xhub_end
Postcondition
  • ct() == old_ct + (xhub_end - xhub_begin + 1)
  • next_id() == old_next_id + (xhub_end - xhub_begin + 1)
  • for( pod_type i=xhub_begin ; i<=xhub_end ; ++i ) pod(i) == old_next_id+(i-xhub_begin)

Definition at line 511 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::ct(), insert_interval(), sheaf::gathered_insertion_index_space_state::next_id(), pod(), and remove_interval().

◆ put_merge_mode()

void sheaf::interval_index_space_state::put_merge_mode ( bool  xvalue)

Sets merge_mode() to xvalue.

Postcondition

Definition at line 763 of file interval_index_space_state.cc.

References _merge_mode, invalid_entry_ct(), and merge_mode().

Referenced by merge_mode(), and sheaf::interval_index_space_handle::put_merge_mode().

◆ release_id_space()

void sheaf::interval_index_space_state::release_id_space ( index_space_handle xid_space) const
virtual

Release the id space handle xid_space.

Precondition
  • allocated_id_space(xid_space)
Postcondition
  • is_basic_query

Implements sheaf::explicit_index_space_state.

Definition at line 1588 of file interval_index_space_state.cc.

References allocated_id_space(), and sheaf::index_space_handle::detach().

Referenced by get_id_space().

◆ release_iterator()

void sheaf::interval_index_space_state::release_iterator ( index_space_iterator xitr) const
virtual

Returns the id space iterator xitr to the iterator pool.

Precondition
  • allocated_iterator(xitr)
Postcondition
  • is_basic_query

Implements sheaf::explicit_index_space_state.

Definition at line 1725 of file interval_index_space_state.cc.

References allocated_iterator(), and sheaf::index_space_iterator::detach().

Referenced by get_iterator().

◆ remove_hub_interval()

sheaf::size_type sheaf::interval_index_space_state::remove_hub_interval ( pod_type  xhub_begin,
pod_type  xhub_end 
)

Removes the equivalance associated with the interval [xhub_begin, xhub_end]. Returns the number of entries actually removed, if any.

Precondition
  • xhub_begin <= xhub_end
Postcondition
  • for( pod_type i=xhub_begin ; i<=xhub_end ; ++i ) !contains_hub(i)

Definition at line 568 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::_ct, sheaf::explicit_index_space_state::contains_hub(), map_rep_remove_interval(), remove_interval(), and sheaf::gathered_insertion_index_space_state::update_extrema_after_remove().

Referenced by sheaf::interval_index_space_handle::remove_hub_interval(), and remove_interval().

◆ remove_interval() [1/2]

sheaf::size_type sheaf::interval_index_space_state::remove_interval ( const scoped_index xhub_begin,
const scoped_index xhub_end 
)

Removes the equivalance associated with the interval [xhub_begin.hub_pod(), xhub_end.hub_pod()]. synonym for remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()). Returns the number of entries actually removed, if any.

Precondition
  • xhub_begin.in_scope()
  • xhub_end.in_scope()
  • precondition_of(remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))
Postcondition
  • postcondition_of(remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))

Definition at line 541 of file interval_index_space_state.cc.

References sheaf::scoped_index::hub_pod(), sheaf::scoped_index::in_scope(), and remove_hub_interval().

Referenced by push_interval(), remove_hub_interval(), and sheaf::interval_index_space_handle::remove_interval().

◆ remove_interval() [2/2]

sheaf::size_type sheaf::interval_index_space_state::remove_interval ( pod_type  xbegin,
pod_type  xend 
)

Removes the equivalance associated with the interval [xbegin, xend]. Returns the number of entries actually removed, if any.

Precondition
  • xbegin <= xend
Postcondition
  • for( pod_type i=xbegin ; i<=xend ; ++i ) !contains(i)

Definition at line 599 of file interval_index_space_state.cc.

References sheaf::explicit_index_space_state::_ct, contains(), interval_begin(), map_rep_remove_interval(), and sheaf::gathered_insertion_index_space_state::update_extrema_after_remove().

◆ reserve()

void sheaf::interval_index_space_state::reserve ( size_type  xcapacity)
virtual

Reserve enough memory for xcapacity number of ids.

Postcondition

Implements sheaf::gathered_insertion_index_space_state.

Definition at line 911 of file interval_index_space_state.cc.

References _capacity, capacity(), and invariant().

Referenced by update_extrema().

◆ unglued_hub_pod()

sheaf::explicit_index_space_state::pod_type sheaf::interval_index_space_state::unglued_hub_pod ( pod_type  xid) const
virtual

The pod index in the unglued hub id space equivalent to xid in this id space.

Postcondition
  • !is_valid(result) || contains_unglued_hub(result)

Implements sheaf::explicit_index_space_state.

Definition at line 1500 of file interval_index_space_state.cc.

References _to_range, contains_unglued_hub(), handle_pool_ct(), sheaf::is_valid(), and map_value().

Referenced by pod().

◆ update_extrema()

Friends And Related Function Documentation

◆ deep_size

SHEAF_DLL_SPEC size_t deep_size ( const interval_index_space_state xn,
bool  xinclude_shallow 
)
friend

The deep size of interval_index_space_state& xn.

Referenced by sheaf::deep_size(), and operator==().

Member Data Documentation

◆ _capacity

pod_type sheaf::interval_index_space_state::_capacity
protected

The capacity of this map.

Definition at line 406 of file interval_index_space_state.h.

Referenced by capacity(), interval_index_space_state(), operator=(), operator==(), and reserve().

◆ _merge_mode

bool sheaf::interval_index_space_state::_merge_mode
protected

True if and only if compatible intervals should be merged.

Definition at line 411 of file interval_index_space_state.h.

Referenced by interval_index_space_state(), map_rep_insert_interval(), map_rep_remove_interval(), merge_mode(), operator=(), operator==(), and put_merge_mode().

◆ _to_domain

to_domain_type sheaf::interval_index_space_state::_to_domain
protected

◆ _to_range

to_range_type sheaf::interval_index_space_state::_to_range
protected

The documentation for this class was generated from the following files: