21 #ifndef CRG_INTERVAL_H 22 #define CRG_INTERVAL_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/block.h" 32 #ifndef PRIMARY_INDEX_SPACE_HANDLE_H 33 #include "SheafSystem/primary_index_space_handle.h" 36 #ifndef SCOPED_INDEX_H 37 #include "SheafSystem/scoped_index.h" 40 #ifndef STD_IOSTREAM_H 41 #include "SheafSystem/std_iostream.h" 45 #include "SheafSystem/std_string.h" 55 class poset_state_handle;
56 class namespace_poset;
65 std::ostream&
operator <<(std::ostream& os,
const crg_interval& m);
179 bool id_spaces_initialized()
const;
225 bool local_id_space_initialized()
const;
261 bool covers_initialized(
bool xlower)
const;
266 void initialize_covers();
273 virtual void initialize_lower_covers() = 0;
278 virtual void initialize_upper_covers() = 0;
316 bool cover_is_explicit(
bool xlower,
pod_index_type xmbr_index)
const;
327 bool xinitialize =
true);
334 static std::string explicit_cover_name(
bool xlower,
const scoped_index& xmbr_index);
339 static std::string explicit_cover_name(
bool xlower,
pod_index_type xmbr_index);
361 return (xlower ? _explicit_lower_cover_map : _explicit_upper_cover_map);
369 return (xlower ? _explicit_lower_cover_map : _explicit_upper_cover_map);
393 static crg_interval* new_interval(
const std::string& xname);
404 virtual bool is_initialized()
const;
410 virtual const std::string& class_name()
const;
429 virtual bool is_ancestor_of(
const any* other)
const;
440 virtual bool invariant()
const;
462 #endif // ifndef CRG_INTERVAL_H The data structure representing the cover relation graph of a poset.
index_space_family * _id_spaces
The id space family of this interval.
explicit_cover_map_type _explicit_lower_cover_map
The map from ids to explicit lower cover id spaces.
The default name space; a poset which contains other posets as members.
pod_index_type _lower_covers_begin
The offset into the id space family for the interval of lower covers.
bool _lower_covers_initialized
True if and only if the lower cover is initialized.
bool _local_id_space_initialized
True if local id space has been initialized.
explicit_cover_map_type & explicit_cover_map(bool xlower)
The lower (xlower true) or upper (xlower false) map to explicit cover id spaces.
bool _upper_covers_initialized
True if and only if the upper cover is initialized.
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
primary_index_space_handle _local_id_space
The id space of this interval.
explicit_cover_map_type _explicit_upper_cover_map
The map from ids to explicit upper cover id spaces.
An implementation of class sum_index_space_handle that has a primary sum id space state...
An implementation of class explicit_index_space_handle that has a primary id space state...
Abstract base class with useful features for all objects.
pod_index_type _upper_covers_begin
The offset into the id space family for the interval of upper covers.
Abstract emulator for an interval of cover relation graph members.
A factory for instanting descendants of an abstract type T, given the class name of the descendant...
An index within the external ("client") scope of a given id space.
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.
bool _id_spaces_initialized
True if the id space family has been initialized.
int_type pod_index_type
The plain old data index type.
const explicit_cover_map_type & explicit_cover_map(bool xlower) const
The lower (xlower true) or upper (xlower false) map to explicit cover id spaces; const version...
SHEAF_DLL_SPEC std::ostream & operator<<(std::ostream &os, const dof_descriptor_array &p)
Insert dof_descriptor_array& p into ostream& os.
Namespace for the sheaves component of the sheaf system.
Factory and container for a family of id spaces.
unordered::unordered_map< pod_index_type, pod_index_type > explicit_cover_map_type
The type of the explicit cover maps..