21 #ifndef PRIMARY_SUM_INDEX_SPACE_STATE_H 22 #define PRIMARY_SUM_INDEX_SPACE_STATE_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 28 #ifndef SUM_INDEX_SPACE_STATE_H 29 #include "SheafSystem/sum_index_space_state.h" 33 #include "SheafSystem/list_pool.h" 36 #ifndef INTERVAL_INDEX_SPACE_HANDLE_H 37 #include "SheafSystem/interval_index_space_handle.h" 40 #ifndef INTERVAL_SET_H 41 #include "SheafSystem/interval_set.h" 44 #ifndef RESERVED_PRIMARY_INDEX_SPACE_HANDLE_H 45 #include "SheafSystem/reserved_primary_index_space_handle.h" 48 #ifndef STD_UNORDERED_MAP_H 49 #include "SheafSystem/std_unordered_map.h" 52 #ifndef STD_UNORDERED_SET_H 53 #include "SheafSystem/std_unordered_set.h" 59 class interval_index_space_handle;
60 class primary_index_space_handle;
61 class hub_index_space_iterator;
106 const std::string& xname);
115 const std::string& xname);
179 bool is_valid_reserved_id(
pod_type xid)
const;
227 static const std::string& term_prefix();
232 std::string next_term_name();
254 bool reserved_interval_is_available(
pod_type xid)
const;
259 void update_extrema();
314 bool has_gluing()
const;
339 void update_gathered_id_space();
349 bool has_gathered_id_space()
const;
354 bool gathered_id_space_excludes_bottom()
const;
359 static const std::string& gathered_hub_id_space_name();
367 void update_gathered_id_space(
bool xexclude_bottom);
389 void update_standard_ids();
394 bool has_only_standard_ids()
const;
424 virtual bool contains_rep(
pod_type xhub_id)
const;
440 virtual pod_type term_id_begin()
const;
445 virtual pod_type term_id_end()
const;
450 virtual bool contains_term_id(
pod_type xi)
const;
455 virtual void clear();
462 typedef unordered::unordered_map<pod_type, pod_type>
rem_type;
523 virtual bool contains(
pod_type xid)
const;
528 virtual bool contains_unglued_hub(
pod_type xid)
const;
533 virtual bool contains_glued_hub(
pod_type xid)
const;
572 static size_type handle_pool_deep_size();
617 static size_type iterator_pool_deep_size();
657 virtual const std::string& class_name()
const;
671 static bool make_prototype();
686 virtual bool is_ancestor_of(
const any *other)
const;
691 virtual bool invariant()
const;
713 #endif // ifndef PRIMARY_SUM_INDEX_SPACE_STATE_H An implementation of class scattered_insertion_index_space_handle that has a interval id space state...
pod_type _term_id_end
Ending index of the terms in this sum.
Set of integers optimized for when the integers are concentrated in closed intervals.
An abstract iterator over the ids of an id space.
rem_type _rem
The reflexive reduction of the rem map.
primary_sum_index_space_state(const primary_sum_index_space_state &xother)
Copy constructor; disabled.
pod_type _standard_id_end
The end id of the standard ids.
pod_type _term_id_begin
Beginning index of the terms in this sum.
The default name space; a poset which contains other posets as members.
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
An implementation of class sum_index_space_handle that has a primary sum id space state...
interval_index_space_handle _gathered_id_space
The gathered id space.
Abstract base class with useful features for all objects.
interval_set _members
Set of members in the domain of this map.
pod_type _next_id
The next available id.
An immutable abstract state for a space of alternate integer identifiers (aliases) for a subset of th...
An abstract id space of alternate integer identifiers which is the sum (disjoint union) of two or mor...
SHEAF_DLL_SPEC size_t deep_size(const dof_descriptor_array &xp, bool xinclude_shallow=true)
The deep size of the referenced object of type dof_descriptor_array.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
reserved_primary_index_space_handle _reserved_term
The current reserved term.
unordered::unordered_map< pod_type, pod_type > rem_type
The type of rem map.
bool operator==(const singly_linked_list< T, Alloc > &lhs, const singly_linked_list< T, Alloc > &rhs)
Checks if the contents of lhs and rhs are equal, that is, whether lhs.size() == rhs.size() and each element in lhs compares equal with the element in rhs at the same position.
pod_index_type pod_type
The "plain old data" index type for this.
An implementation of class primary_index_space_handle that has a reserved primary id space state...
Namespace for the sheaves component of the sheaf system.
An implementation of class sum_index_space_state intended for use as the sum of the primary id spaces...
Factory and container for a family of id spaces.
An iterator over an id space which is the sum of the primary id spaces.
unordered::unordered_set< pod_type > _reserved_term_ids
The set of reserved term ids.
A reallocated pool of objects of type T. Objects in the pool are either allocated or stored in a free...