SheafSystem  0.0.0.0
sheaf::sum_index_space_state Class Referenceabstract

An abstract id space of alternate integer identifiers which is the sum (disjoint union) of two or more id spaces. More...

#include <sum_index_space_state.h>

Inheritance diagram for sheaf::sum_index_space_state:
sheaf::explicit_index_space_state sheaf::any sheaf::primary_sum_index_space_state

Public Member Functions

virtual const std::string & class_name () const
 The name of this class. More...
 
- Public Member Functions inherited from sheaf::explicit_index_space_state
virtual explicit_index_space_stateclone () const =0
 Virtual constructor; create a new instance of the same type at this. More...
 
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...
 
virtual bool contains (pod_type xid) const =0
 True if this space contains id xid. 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_unglued_hub (pod_type xid) const =0
 True if this space contains an id equivalent to xid in the unglued hub id space. 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...
 
virtual pod_type pod (pod_type xid) const =0
 The pod index in this space equivalent to xid in the unglued 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 unglued_hub_pod (pod_type xid) const =0
 The pod index in the unglued hub id space equivalent to xid in this id space. 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...
 
virtual index_space_handleget_id_space () const =0
 Allocates an id space handle from the handle pool. More...
 
virtual void release_id_space (index_space_handle &xid_space) const =0
 Returns the id space handle xid_space to the handle pool. More...
 
virtual bool allocated_id_space (const index_space_handle &xid_space) const =0
 True if and only if id space handle xid_space was allocated by the handle pool. More...
 
virtual index_space_iteratorget_iterator () const =0
 Allocates an id space iterator from the iterator pool. More...
 
virtual void release_iterator (index_space_iterator &xitr) const =0
 Returns the id space iterator xitr to the iterator pool. More...
 
virtual bool allocated_iterator (const index_space_iterator &xitr) const =0
 True if and only if id space iterator xitr was allocated by the iterator pool. 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

SHEAF_DLL_SPEC size_t deep_size (const sum_index_space_state &xn, bool xinclude_shallow)
 The deep size of sum_index_space_state& xn. More...
 

SUM_INDEX_SPACE_STATE FACET

 sum_index_space_state ()
 Default constructor. More...
 
 sum_index_space_state (const sum_index_space_state &xother)
 Copy constructor; disabled. More...
 
virtual ~sum_index_space_state ()
 Destructor. More...
 

SUM INDEX SPACE FACET

typedef std::list< pod_typeequivalence_class_type
 The type used to represent an equivalence class. More...
 
typedef unordered::unordered_multimap< pod_type, pod_typerem_inv_type
 The type of the inverse of the rem map. More...
 
typedef zero_block_initialization_policy< index_space_handle * > terms_init_type
 The type of the terms block initialization policy. More...
 
typedef auto_block< index_space_handle *, terms_init_typeterms_type
 The type of the terms block. More...
 
typedef std::map< pod_type, pod_typesum_to_term_type
 The type of sum_to_term_map. More...
 
rem_inv_type _rem_inv
 The inverse rem map. More...
 
terms_type _terms
 The terms of this sum. More...
 
block< pod_type_term_begin
 The beginning of the interval in the sum id space for each term. More...
 
block< pod_type_term_end
 The end of the interval in the sum id space for each term. More...
 
sum_to_term_type _sum_to_term_map
 The term id corresponding to each sum id. More...
 
void equivalence_class (pod_type xhub_id, equivalence_class_type &result) const
 The equivalence class associated with the hub id xhub_id. More...
 
size_type equivalence_ct (pod_type xhub_id) const
 The number of members of the equivalence class of hub id xhub_id. More...
 
virtual bool contains_rep (pod_type xhub_id) const =0
 True if and only if hub id xhub_id is the representative member of its equivalence class. More...
 
bool contains_unique_rep (pod_type xhub_id) const
 True if and only if hub id xhub_id is the only member of its equivalence class. More...
 
virtual pod_type rep (pod_type xhub_id) const =0
 The representative member of the equivalence class of hub id xhub_id. More...
 
virtual pod_type host_rep (pod_type xhub_id) const =0
 The host id associated with the representative member of the equivalence class of hub id xhub_id. More...
 
virtual pod_type term_id_begin () const =0
 Beginning index of the terms in this sum. More...
 
virtual pod_type term_id_end () const =0
 Ending index of the terms in this sum. More...
 
virtual bool contains_term_id (pod_type xi) const =0
 True if this map contains the xi-th term. More...
 
const index_space_handleterm (pod_type xi) const
 The xi-th term. More...
 
const index_space_handleterm_of (pod_type xid) const
 The term containing id xid. More...
 
const index_space_handleterm_of (const scoped_index &xid) const
 The term contains id xid. More...
 
const index_space_handlelast_term () const
 The last term. More...
 
pod_type term_begin (pod_type xi) const
 Beginning id of the xi-th term. More...
 
pod_type term_end (pod_type xi) const
 Ending id of the xi-th term. More...
 
pod_type term_hub_begin (pod_type xi) const
 Beginning hub id of the xi-th term. More...
 
pod_type term_hub_end (pod_type xi) const
 Ending hub id of the xi-th term. More...
 
pod_type term_id (pod_type xid) const
 The id of the term containing id xid. More...
 
void binary (pod_type xindex, pod_type &xterm_id, pod_type &xlocal) const
 Converts simple index xindex to its binary components xterm_id and xlocal_id. More...
 
void simple (pod_type xterm_id, pod_type xlocal_id, pod_type &xindex) const
 Converts binary components xterm_id, xlocal_id to simple index xindex. More...
 
virtual void clear ()
 Deletes all entries. More...
 

EXPLICIT_INDEX_SPACE_STATE FACET

virtual sum_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...
 

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::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 abstract id space of alternate integer identifiers which is the sum (disjoint union) of two or more id spaces.

Every sum_index_space_state defines an equivalence relation on the sum id space. An equivalence relation R on a set S partitions S into a set of equivalence classes called the quotient of S by R and denoted S/R. There are 3 useful maps associated with the equivalence relation:

1) the modulo or projection function: S -> S/R which associates each member of S with it's equivalence class; 2) the rep function: S/R -> Q subset of S which associates each equivalence class with a representative member; 3) the rem function: S -> Q which associates each member of S with the representative of its equivalence class.

The rem function and it's inverse are particularly useful for representing the equivalence relation.

Representations of sum_index_space_state differentiate on the interpretation and implementation of the equivalence relation. Class primary_sum_index_space_state has a mutable equivalence relation which is interpreted as defining the hub id space as the quotient space of the primary sum id space by the equivalence relation. That is, the equivalence relation is interpreted as gluing members of the terms together to form the hub id space.

Class glued_sum_index_space_state interprets the hub id space as given and has an immutable equivalence relation derived from the term id spaces.

Definition at line 83 of file sum_index_space_state.h.

Member Typedef Documentation

◆ equivalence_class_type

The type used to represent an equivalence class.

Definition at line 127 of file sum_index_space_state.h.

◆ rem_inv_type

typedef unordered::unordered_multimap<pod_type, pod_type> sheaf::sum_index_space_state::rem_inv_type
protected

The type of the inverse of the rem map.

Definition at line 242 of file sum_index_space_state.h.

◆ sum_to_term_type

The type of sum_to_term_map.

Definition at line 277 of file sum_index_space_state.h.

◆ terms_init_type

The type of the terms block initialization policy.

Definition at line 252 of file sum_index_space_state.h.

◆ terms_type

The type of the terms block.

Definition at line 257 of file sum_index_space_state.h.

Constructor & Destructor Documentation

◆ sum_index_space_state() [1/2]

sheaf::sum_index_space_state::sum_index_space_state ( )
protected

◆ sum_index_space_state() [2/2]

sheaf::sum_index_space_state::sum_index_space_state ( const sum_index_space_state xother)
inlineprotected

Copy constructor; disabled.

Definition at line 105 of file sum_index_space_state.h.

◆ ~sum_index_space_state()

sheaf::sum_index_space_state::~sum_index_space_state ( )
protectedvirtual

Member Function Documentation

◆ binary()

void sheaf::sum_index_space_state::binary ( pod_type  xindex,
pod_type xterm_id,
pod_type xlocal 
) const

Converts simple index xindex to its binary components xterm_id and xlocal_id.

Precondition
  • contains_hub(xindex)
Postcondition
  • contains_term_id(xterm_id)
  • term(xterm_id).contains(xlocal_id)

Definition at line 512 of file sum_index_space_state.cc.

References _sum_to_term_map, _term_begin, sheaf::explicit_index_space_state::contains(), sheaf::explicit_index_space_state::contains_hub(), contains_term_id(), simple(), and term().

Referenced by sheaf::sum_index_space_handle::binary(), and term_id().

◆ class_name()

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

The name of this class.

Reimplemented from sheaf::explicit_index_space_state.

Reimplemented in sheaf::primary_sum_index_space_state.

Definition at line 708 of file sum_index_space_state.cc.

References is_ancestor_of().

Referenced by operator=().

◆ clear()

◆ contains_rep()

bool sheaf::sum_index_space_state::contains_rep ( pod_type  xhub_id) const
pure virtual

True if and only if hub id xhub_id is the representative member of its equivalence class.

Is Abstract.

Postcondition
  • result ? contains_hub(xhub_id) : true

Implemented in sheaf::primary_sum_index_space_state.

Definition at line 165 of file sum_index_space_state.cc.

References sheaf::explicit_index_space_state::contains_hub(), and contains_unique_rep().

Referenced by sheaf::sum_index_space_handle::contains_rep(), contains_unique_rep(), and equivalence_ct().

◆ contains_term_id()

bool sheaf::sum_index_space_state::contains_term_id ( pod_type  xi) const
pure virtual

True if this map contains the xi-th term.

Is Abstract.

Postcondition
  • is_basic_query

Implemented in sheaf::primary_sum_index_space_state.

Definition at line 300 of file sum_index_space_state.cc.

References term().

Referenced by binary(), sheaf::sum_index_space_handle::contains_term_id(), simple(), term(), term_begin(), term_end(), term_hub_begin(), term_hub_end(), term_id(), and term_id_end().

◆ contains_unique_rep()

bool sheaf::sum_index_space_state::contains_unique_rep ( pod_type  xhub_id) const

True if and only if hub id xhub_id is the only member of its equivalence class.

Postcondition
  • result ? contains_hub(xhub_id) : true
  • result ? contains_rep(xhub_id) : true

Definition at line 186 of file sum_index_space_state.cc.

References _rem_inv, sheaf::explicit_index_space_state::contains_hub(), contains_rep(), and rep().

Referenced by contains_rep(), sheaf::sum_index_space_handle::contains_unique_rep(), sheaf::primary_sum_index_space_state::glue(), sheaf::primary_sum_index_space_state::unglue(), and sheaf::primary_sum_index_space_state::unglue_all().

◆ deep_size()

sheaf::size_type sheaf::sum_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.

Reimplemented in sheaf::primary_sum_index_space_state.

Definition at line 636 of file sum_index_space_state.cc.

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

◆ equivalence_class()

void sheaf::sum_index_space_state::equivalence_class ( pod_type  xhub_id,
equivalence_class_type result 
) const

The equivalence class associated with the hub id xhub_id.

Precondition
  • contains_hub(xhub_id)
Postcondition
  • !result.empty()

Definition at line 98 of file sum_index_space_state.cc.

References _rem_inv, sheaf::explicit_index_space_state::contains_hub(), equivalence_ct(), and rep().

Referenced by sheaf::sum_index_space_handle::equivalence_class(), and ~sum_index_space_state().

◆ equivalence_ct()

sheaf::size_type sheaf::sum_index_space_state::equivalence_ct ( pod_type  xhub_id) const

The number of members of the equivalence class of hub id xhub_id.

Precondition
  • contains_hub(xhub_id)
Postcondition
  • result > 0

Definition at line 138 of file sum_index_space_state.cc.

References _rem_inv, sheaf::explicit_index_space_state::contains_hub(), contains_rep(), and rep().

Referenced by equivalence_class(), and sheaf::sum_index_space_handle::equivalence_ct().

◆ host_rep()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::host_rep ( pod_type  xhub_id) const
pure virtual

The host id associated with the representative member of the equivalence class of hub id xhub_id.

Precondition
  • contains_hub(xhub_id)
Is Abstract.
Postcondition
  • contains(result)

Implemented in sheaf::primary_sum_index_space_state.

Definition at line 235 of file sum_index_space_state.cc.

References sheaf::explicit_index_space_state::contains(), sheaf::explicit_index_space_state::contains_hub(), and term_id_begin().

Referenced by sheaf::sum_index_space_handle::host_rep(), and rep().

◆ invariant()

◆ is_ancestor_of()

bool sheaf::sum_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::explicit_index_space_state.

Reimplemented in sheaf::primary_sum_index_space_state.

Definition at line 727 of file sum_index_space_state.cc.

References invariant().

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

◆ last_term()

const sheaf::index_space_handle & sheaf::sum_index_space_state::last_term ( ) const

The last term.

Precondition
  • !is_empty()
Postcondition
  • is_basic_query

Definition at line 385 of file sum_index_space_state.cc.

References _terms, sheaf::explicit_index_space_state::is_empty(), term_begin(), and term_id_end().

Referenced by sheaf::primary_sum_index_space_state::extend_last_term(), sheaf::sum_index_space_handle::last_term(), and term_of().

◆ operator=()

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

Assignment operator.

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

Reimplemented from sheaf::explicit_index_space_state.

Reimplemented in sheaf::primary_sum_index_space_state.

Definition at line 657 of file sum_index_space_state.cc.

References _rem_inv, _sum_to_term_map, _term_begin, _term_end, _terms, class_name(), invariant(), and is_ancestor_of().

Referenced by deep_size().

◆ operator==()

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

True if this is equivalent to xother.

Precondition
  • is_ancestor_of(&xother)
Error:
Since we still support tr1 unordered_maps the comparison operator may not be supported. See COM-374.

Reimplemented from sheaf::explicit_index_space_state.

Reimplemented in sheaf::primary_sum_index_space_state.

Definition at line 607 of file sum_index_space_state.cc.

References _sum_to_term_map, _term_begin, _term_end, _terms, deep_size, is_ancestor_of(), and sheaf::explicit_index_space_state::operator==().

Referenced by clear(), and sheaf::primary_sum_index_space_state::operator==().

◆ rep()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::rep ( pod_type  xhub_id) const
pure virtual

The representative member of the equivalence class of hub id xhub_id.

Precondition
  • contains_hub(xhub_id)
Is Abstract.
Postcondition
  • is_basic_query

Implemented in sheaf::primary_sum_index_space_state.

Definition at line 212 of file sum_index_space_state.cc.

References sheaf::explicit_index_space_state::contains_hub(), and host_rep().

Referenced by contains_unique_rep(), equivalence_class(), equivalence_ct(), and sheaf::sum_index_space_handle::rep().

◆ simple()

void sheaf::sum_index_space_state::simple ( pod_type  xterm_id,
pod_type  xlocal_id,
pod_type xindex 
) const

Converts binary components xterm_id, xlocal_id to simple index xindex.

Precondition
  • contains_term_id(xterm_id)
  • term(xterm_id).contains(xlocal_id)
Postcondition
  • contains_hub(xindex)

Definition at line 535 of file sum_index_space_state.cc.

References _term_begin, clear(), sheaf::explicit_index_space_state::contains(), sheaf::explicit_index_space_state::contains_hub(), contains_term_id(), and term().

Referenced by binary(), and sheaf::sum_index_space_handle::simple().

◆ term()

const sheaf::index_space_handle & sheaf::sum_index_space_state::term ( pod_type  xi) const

The xi-th term.

Precondition
  • contains_term_id(xi)
Postcondition
  • is_basic_query

Definition at line 321 of file sum_index_space_state.cc.

References _terms, contains_term_id(), and term_of().

Referenced by binary(), contains_term_id(), sheaf::primary_sum_index_space_state::remove_term(), simple(), sheaf::sum_index_space_handle::term(), and term_of().

◆ term_begin()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_begin ( pod_type  xi) const

Beginning id of the xi-th term.

Precondition
  • contains_term_id(xi)
Postcondition
  • is_basic_query

Definition at line 409 of file sum_index_space_state.cc.

References _term_begin, contains_term_id(), and term_end().

Referenced by last_term(), sheaf::sum_index_space_handle::term_begin(), and term_hub_begin().

◆ term_end()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_end ( pod_type  xi) const

Ending id of the xi-th term.

Precondition
  • contains_term_id(xi)
Postcondition
  • is_basic_query

Definition at line 430 of file sum_index_space_state.cc.

References _term_end, contains_term_id(), and term_hub_begin().

Referenced by sheaf::primary_sum_index_space_state::new_reserved_term(), term_begin(), sheaf::sum_index_space_handle::term_end(), and term_hub_end().

◆ term_hub_begin()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_hub_begin ( pod_type  xi) const

Beginning hub id of the xi-th term.

Precondition
  • contains_term_id(xi)
Postcondition
  • is_basic_query

Definition at line 451 of file sum_index_space_state.cc.

References contains_term_id(), sheaf::explicit_index_space_state::hub_pod(), term_begin(), and term_hub_end().

Referenced by term_end(), and sheaf::sum_index_space_handle::term_hub_begin().

◆ term_hub_end()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_hub_end ( pod_type  xi) const

Ending hub id of the xi-th term.

Precondition
  • contains_term_id(xi)
Postcondition
  • is_basic_query

Definition at line 472 of file sum_index_space_state.cc.

References contains_term_id(), sheaf::explicit_index_space_state::hub_pod(), term_end(), and term_id().

Referenced by term_hub_begin(), and sheaf::sum_index_space_handle::term_hub_end().

◆ term_id()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_id ( pod_type  xid) const

◆ term_id_begin()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_id_begin ( ) const
pure virtual

Beginning index of the terms in this sum.

Is Abstract.

Postcondition
  • is_basic_query

Implemented in sheaf::primary_sum_index_space_state.

Definition at line 258 of file sum_index_space_state.cc.

References term_id_end().

Referenced by host_rep(), and sheaf::sum_index_space_handle::term_id_begin().

◆ term_id_end()

sheaf::sum_index_space_state::pod_type sheaf::sum_index_space_state::term_id_end ( ) const
pure virtual

Ending index of the terms in this sum.

Is Abstract.

Postcondition
  • is_basic_query

Implemented in sheaf::primary_sum_index_space_state.

Definition at line 279 of file sum_index_space_state.cc.

References contains_term_id().

Referenced by last_term(), term_id_begin(), and sheaf::sum_index_space_handle::term_id_end().

◆ term_of() [1/2]

const sheaf::index_space_handle & sheaf::sum_index_space_state::term_of ( pod_type  xid) const

The term containing id xid.

Precondition
  • contains(xid)
Postcondition
  • is_basic_query

Definition at line 342 of file sum_index_space_state.cc.

References sheaf::explicit_index_space_state::contains(), sheaf::explicit_index_space_state::pod(), term(), and term_id().

Referenced by sheaf::primary_sum_index_space_state::new_id(), term(), sheaf::sum_index_space_handle::term_of(), and term_of().

◆ term_of() [2/2]

const sheaf::index_space_handle & sheaf::sum_index_space_state::term_of ( const scoped_index xid) const

The term contains id xid.

Precondition
  • xid.in_scope()
  • contains(xid)
Postcondition
  • is_basic_query

Definition at line 363 of file sum_index_space_state.cc.

References sheaf::explicit_index_space_state::contains(), sheaf::scoped_index::hub_pod(), sheaf::scoped_index::in_scope(), last_term(), and term_of().

Friends And Related Function Documentation

◆ deep_size

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

The deep size of sum_index_space_state& xn.

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

Member Data Documentation

◆ _rem_inv

◆ _sum_to_term_map

sum_to_term_type sheaf::sum_index_space_state::_sum_to_term_map
protected

◆ _term_begin

◆ _term_end

◆ _terms


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