SheafSystem
0.0.0.0
|
#include <depth_first_iterator.h>
Public Types | |
enum | order_type { PREORDER, POSTORDER, LINKORDER, BIORDER, TRIORDER, NOT_AN_ORDER } |
The types of order in which the iterator will visit the members of the poset. Determines which actions are exported to the client. More... | |
enum | action_type { PREVISIT_ACTION, LINK_ACTION, POSTVISIT_ACTION, NOT_AN_ACTION } |
The types of action a client should take when the iterator returns control to the client. More... | |
Public Member Functions | |
depth_first_iterator & | operator= (const depth_first_iterator &xother) |
Assignment operator. More... | |
virtual | ~depth_first_iterator () |
Destructor. More... | |
virtual bool | is_ancestor_of (const any *other) const |
True if other conforms to this. More... | |
virtual depth_first_iterator * | clone () const |
Make a new instance of the same type as this. More... | |
bool | invariant () const |
The class invariant. More... | |
order_type | order () const |
The order of the iteration. Determines which actions are exported to the client. More... | |
virtual bool | is_initialized () const |
True if this has been initialized for iteration with respect to a specific anchor. More... | |
virtual abstract_poset_member & | anchor () |
The poset member whose downset is being iterated over; the top member of the domain of iteration (mutable version). More... | |
virtual const abstract_poset_member & | anchor () const |
The poset member whose downset is being iterated over; the top member of the domain of iteration (const version). More... | |
virtual bool | anchor_is_ancestor_of (const abstract_poset_member &xmbr) const |
True if xmbr conforms to the type of anchor of this. More... | |
bool | descending () const |
True if iterating over down set of anchor. More... | |
bool | strict () const |
True if iterating over xstrict up/down set of anchor. More... | |
subposet & | filter () |
The subposet which is the filter; Defines what is passed, not what is blocked. More... | |
bool | is_done () const |
True if iteration finished. More... | |
virtual void | force_is_done () |
Force the iterator to be done. More... | |
void | next () |
Makes this the next member of the subset. More... | |
void | truncate () |
Makes this the next member of the subset which is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited. More... | |
virtual void | next (bool xtruncate) |
Makes this the next member of the subset. If action() == PREVISIT_ACTION and xtruncate, new this is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited. If action() != PREVISIT_ACTION, xtruncate is ignored. More... | |
virtual void | reset (bool xreset_markers=true) |
Restarts the iteration over the down set of anchor(). More... | |
int | ct (bool xreset=false) |
The number of members of the iteration set, from the current member to the end, inclusive. If xreset, reset before computing the count. More... | |
bool | has_visited (pod_index_type xhub_id) const |
True if this has already visited member with hub id xhub_id. More... | |
bool | has_visited (const scoped_index &xid) const |
True if this has already visited member with id xid. More... | |
bool | has_visited (const abstract_poset_member *xmbr) const |
True if this has already visited member xmbr. More... | |
void | put_has_visited (pod_index_type xhub_id, bool xvalue) |
Set the visited marker for hub id xhub_id to xvalue. Intended for use reseting iterator without having to reset entire collection of markers. More... | |
void | put_has_visited (const scoped_index &xid, bool xvalue) |
Set the visisted marker for id xid to xvalue. Intended for use reseting iterator without having to reset entire collection of markers. More... | |
bool | visit_once () const |
True if traversal should only visit a member once; that is, it should not revisit members it has already visited. More... | |
void | put_visit_once (bool xvisit_once) |
Set visit_once() to xvisit_once. More... | |
bool | is_maximal () const |
True if the current member has no greater member within the subposet visited by this iterator. More... | |
const scoped_index & | greater_index () const |
The index of the greater member of the current link. More... | |
const scoped_index & | lesser_index () const |
The index of the lesser member of the current link. More... | |
action_type | action () const |
The type of action the client should take when the iterator returns control to the client. More... | |
void | erase_cover () |
Schedules the lesser member entry in the cover of the greater member of the current link for deletion on the next call to next(). Warning: this function can change the state of the the cover relation graph in unpredictable ways. Use only if you know what you are doing. More... | |
const scoped_index & | index () const |
The index of the current member of the iteration. More... | |
size_t | depth () const |
The length of the path from anchor() to the current member. 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... | |
Static Public Attributes | |
static const char * | NULL_FILTER = "" |
Placeholder for null filter. More... | |
Protected Types | |
enum | iterator_state { FIRST, INIT_COVER_ITERATOR, TEST_HAS_VISITED, INC_COVER_ITERATOR, ERASE_COVER_ITERATOR, DESCEND, TEST_PATH_TAIL, ASCEND, EXECUTE_PREVISIT_ACTION, EXECUTE_LINK_ACTION, EXECUTE_POSTVISIT_ACTION, FINISH, NOT_A_STATE } |
The states for the finite state machine that controls iteration. More... | |
enum | iterator_token { PASS, FAIL } |
The input tokens for the finite state machine. More... | |
typedef const iterator_state(* | transition_fcn_type)[FAIL+1] |
Protected Member Functions | |
depth_first_iterator () | |
Default constructor; creates an unattached iterator,. More... | |
depth_first_iterator (const depth_first_iterator &xother) | |
Copy constructor. More... | |
void | first () |
Moves this to the first member of the iteration. More... | |
void | mark_visited (abstract_poset_member *xmbr) |
Mark xmbr as visited. Warning: this function can change the state of the iteration in unpredictable ways. Use only if you know what you are doing. More... | |
void | mark_not_visited (abstract_poset_member *xmbr) |
Mark xmbr as not visited. Warning: this function can change the state of the iteration in unpredictable ways. Use only if you know what you are doing. More... | |
virtual void | attach_item () |
Attaches the item handle to the current index. Empty in this class; intended for redefinition in descendants. More... | |
virtual void | detach_item () |
Detaches the item handle to the current index. Empty in this class; intended for redefinition in descendants. More... | |
void | initialize_order (order_type xorder) |
Initializes _order and _transition_fcn. More... | |
void | initialize_traversal (const abstract_poset_member &xanchor) |
Initializes the anchor, has_visited markers and filter. More... | |
void | initialize_traversal (pod_index_type xanchor_hub_id) |
Initializes the anchor, has_visited markers and filter. More... | |
void | initialize_traversal (const scoped_index &xanchor_id) |
Initializes the anchor, has_visited markers and filter. More... | |
void | initialize_anchor (const abstract_poset_member &xanchor) |
Initializes the anchor. More... | |
virtual void | initialize_has_visited (const abstract_poset_member &xanchor) |
Initializes the has_visited markers. More... | |
zn_to_bool * | has_visited () const |
The marker bit vector. /. More... | |
void | put_has_visited (zn_to_bool *xhas_visited) |
Sets _has_visited to xhas_visited. /. More... | |
bool | filter (pod_index_type xhub_id) const |
The value of the filter at hub id xhub_id. More... | |
bool | filter (const scoped_index &xid) const |
The value of the filter at id xid. More... | |
void | initialize_filter () |
Initializes the filter subposet from the client filter. More... | |
void | initialize_filter (const subposet &xfilter) |
Initializes the client filter to xfilter then initializes the filter from the client filter. More... | |
void | initialize_filter (pod_index_type xfilter_hub_id) |
Initializes the client filter to the subposet with hub id xfilter_hub_id then initializes the filter from the client filter. More... | |
void | initialize_filter (const scoped_index &xfilter_id) |
Initializes the client filter to the subposet with id xfilter_id then initializes the filter from the client filter. More... | |
void | initialize_filter (const std::string &xfilter_name) |
Initializes the client filter to the subposet with name xfilter_name then initializes the filter from the client filter. More... | |
void | release_cover_id_space_iterators () |
Release the cover iterators back to the pool of iterators. More... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
Protected Attributes | |
abstract_poset_member * | _anchor |
The top member of the down set being iterated over. More... | |
action_type | _action |
The type of action the client should take; the state of the iterator. More... | |
scoped_index | _index |
The index of the lesser end of the current link; the current item in the iteration. More... | |
scoped_index | _greater_index |
The index of the greater member of the current link. More... | |
scoped_index | _lesser_index |
The index of the lesser member of the current link. More... | |
subposet | _client_filter |
The filter specified by the client. More... | |
bool | _new_filter |
True if this allocated a new filter;. More... | |
bool | _descending |
True if iterating over the up/down set of anchor. More... | |
bool | _strict |
True if iterating over the strict up/down set of anchor. More... | |
order_type | _order |
The order of the iteration. More... | |
const iterator_state(* | _transition_fcn )[FAIL+1] |
The current state transition function for the iterator finite state machine. Points to one of the predefined transition functions. More... | |
iterator_state | _state |
The current state of iteration. More... | |
index_space_iterator * | _path_head_lc |
The lower cover iterator for the head of the path to the current member of the iteration. More... | |
index_space_iterator * | _path_head |
The head of the path to the current member of the iteration lesser_index() == this->index() == **_path_head == lesser member of current link. More... | |
std::stack< index_space_iterator * > | _path_tail |
The tail of the path to the current member of the iteration greater_index() == **(_path_tail.top()) == greater member of current link. More... | |
std::stack< pod_index_type > | _filtered_path_tail |
The tail of the filtered path to the current member of the iteration. Contains only members which pass the filter; equivalent to the path in the subposet selected by the filter. More... | |
bool | _visit_once |
True if traversal should only visit a member once; that is, it should not revisit members it has already visited. More... | |
Static Protected Attributes | |
static const char * | iterator_state_names [NOT_A_STATE+1] |
The names of the iterator states, convenient for debugging. More... | |
static const iterator_state | PREORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for postorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | POSTORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for postorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | LINKORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for linkorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | BIORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for biorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | TRIORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for triorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const transition_fcn_type | STD_TRANSITION_FCNS [NOT_AN_ORDER+1] |
The set of predefined transition functions. More... | |
Definition at line 79 of file depth_first_iterator.h.
The types of action a client should take when the iterator returns control to the client.
Definition at line 168 of file depth_first_iterator.h.
|
protected |
The states for the finite state machine that controls iteration.
Definition at line 556 of file depth_first_iterator.h.
|
protected |
The input tokens for the finite state machine.
Definition at line 576 of file depth_first_iterator.h.
The types of order in which the iterator will visit the members of the poset. Determines which actions are exported to the client.
Definition at line 154 of file depth_first_iterator.h.
|
virtual |
Destructor.
Definition at line 38 of file depth_first_iterator.cc.
References _anchor, _client_filter, _new_filter, sheaf::poset_component::detach_from_state(), is_ancestor_of(), and release_cover_id_space_iterators().
|
protected |
Default constructor; creates an unattached iterator,.
Definition at line 1171 of file depth_first_iterator.cc.
References _action, _anchor, _descending, _index, _new_filter, _path_head, _path_head_lc, _state, _strict, _visit_once, descending(), initialize_order(), sheaf::scoped_index::invalidate(), invariant(), is_done(), is_initialized(), order(), strict(), and visit_once().
|
protected |
Copy constructor.
Definition at line 1210 of file depth_first_iterator.cc.
References _anchor, _new_filter, _path_head, _path_head_lc, anchor(), descending(), filter(), first(), invariant(), is_done(), is_initialized(), sheaf::NO_RESET, operator=(), order(), reset(), strict(), sheaf::poset_component::version(), and visit_once().
sheaf::depth_first_iterator::action_type sheaf::depth_first_iterator::action | ( | ) | const |
The type of action the client should take when the iterator returns control to the client.
Definition at line 1087 of file depth_first_iterator.cc.
References _action, and erase_cover().
Referenced by tool::vtk_unstructured_grid_builder::build_pa(), erase_cover(), index(), invariant(), lesser_index(), fiber_bundle::discretization_iterator::next(), fiber_bundle::eval_iterator::next(), fields::property_disc_iterator_1_1::next(), fields::field_eval_iterator::next(), and fiber_bundle::unstructured_block_builder::put_name_mode().
|
virtual |
The poset member whose downset is being iterated over; the top member of the domain of iteration (mutable version).
Definition at line 214 of file depth_first_iterator.cc.
References _anchor, and is_initialized().
Referenced by sheaf::filtered_depth_first_member_iterator::anchor(), ct(), depth_first_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), has_visited(), initialize_filter(), initialize_traversal(), fiber_bundle::discretization_iterator::invariant(), fiber_bundle::eval_iterator::invariant(), invariant(), fields::field_eval_iterator::invariant(), is_initialized(), mark_not_visited(), mark_visited(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), put_has_visited(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), reset(), and sheaf::filtered_depth_first_member_iterator::update_item().
|
virtual |
The poset member whose downset is being iterated over; the top member of the domain of iteration (const version).
Definition at line 233 of file depth_first_iterator.cc.
References _anchor, anchor_is_ancestor_of(), and is_initialized().
|
virtual |
True if xmbr conforms to the type of anchor of this.
Definition at line 252 of file depth_first_iterator.cc.
References descending().
Referenced by anchor(), initialize_anchor(), initialize_traversal(), and sheaf::filtered_depth_first_iterator::put_anchor().
|
protectedvirtual |
Attaches the item handle to the current index. Empty in this class; intended for redefinition in descendants.
Definition at line 1418 of file depth_first_iterator.cc.
References detach_item().
Referenced by mark_not_visited(), and next().
|
virtual |
Make a new instance of the same type as this.
Reimplemented from sheaf::any.
Reimplemented in fields::field_eval_iterator, fields::property_disc_iterator, fields::property_disc_iterator_1_3, fields::property_disc_iterator_1_2, fields::property_disc_iterator_4_3, fields::property_disc_iterator_4_2, fields::property_disc_iterator_1_1, sheaf::filtered_depth_first_iterator, tool::visualization_iterator_1_3, tool::visualization_iterator_4_3, fiber_bundle::eval_iterator, tool::visualization_iterator_1_1, tool::visualization_iterator_4_2, fiber_bundle::discretization_iterator, tool::visualization_iterator, sheaf::triorder_iterator, sheaf::linkorder_iterator, sheaf::postorder_iterator, sheaf::preorder_iterator, and sheaf::biorder_iterator.
Definition at line 97 of file depth_first_iterator.cc.
References depth_first_iterator(), invariant(), and is_initialized().
Referenced by is_ancestor_of(), fiber_bundle::section_dof_iterator::operator=(), and fiber_bundle::section_dof_iterator::section_dof_iterator().
int sheaf::depth_first_iterator::ct | ( | bool | xreset = false | ) |
The number of members of the iteration set, from the current member to the end, inclusive. If xreset, reset before computing the count.
Definition at line 859 of file depth_first_iterator.cc.
References anchor(), has_visited(), is_done(), is_initialized(), next(), and reset().
Referenced by sheaf::filtered_depth_first_member_iterator::ct(), fiber_bundle::eval_iterator::discretization_client_id(), and reset().
size_t sheaf::depth_first_iterator::depth | ( | ) | const |
The length of the path from anchor() to the current member.
Definition at line 1148 of file depth_first_iterator.cc.
References _path_tail, depth_first_iterator(), and is_done().
Referenced by index(), fields::field_eval_iterator::next(), fields::field_eval_iterator::refinement_depth(), and fields::field_eval_iterator::repeat().
bool sheaf::depth_first_iterator::descending | ( | ) | const |
True if iterating over down set of anchor.
Definition at line 274 of file depth_first_iterator.cc.
References _descending, and strict().
Referenced by anchor_is_ancestor_of(), depth_first_iterator(), sheaf::filtered_depth_first_member_iterator::descending(), fiber_bundle::discretization_iterator::discretization_iterator(), fiber_bundle::eval_iterator::eval_iterator(), fields::field_eval_iterator::field_eval_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_filter(), initialize_traversal(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), fields::property_disc_iterator_1_1::property_disc_iterator_1_1(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_descending(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), reset(), tool::visualization_iterator_1_1::visualization_iterator_1_1(), tool::visualization_iterator_1_3::visualization_iterator_1_3(), tool::visualization_iterator_4_2::visualization_iterator_4_2(), and tool::visualization_iterator_4_3::visualization_iterator_4_3().
|
protectedvirtual |
Detaches the item handle to the current index. Empty in this class; intended for redefinition in descendants.
Definition at line 1435 of file depth_first_iterator.cc.
References initialize_order().
Referenced by attach_item(), and next().
void sheaf::depth_first_iterator::erase_cover | ( | ) |
Schedules the lesser member entry in the cover of the greater member of the current link for deletion on the next call to next(). Warning: this function can change the state of the the cover relation graph in unpredictable ways. Use only if you know what you are doing.
Definition at line 1106 of file depth_first_iterator.cc.
References _state, action(), and index().
Referenced by action().
sheaf::subposet & sheaf::depth_first_iterator::filter | ( | ) |
The subposet which is the filter; Defines what is passed, not what is blocked.
Definition at line 312 of file depth_first_iterator.cc.
References _client_filter, sheaf::poset_component::is_attached(), is_done(), and is_initialized().
Referenced by depth_first_iterator(), sheaf::filtered_depth_first_member_iterator::filter(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_traversal(), next(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), and strict().
|
inlineprotected |
The value of the filter at hub id xhub_id.
Definition at line 454 of file depth_first_iterator.h.
|
inlineprotected |
The value of the filter at id xid.
Definition at line 462 of file depth_first_iterator.h.
References sheaf::scoped_index::hub_pod().
|
protected |
Moves this to the first member of the iteration.
Definition at line 1331 of file depth_first_iterator.cc.
References _anchor, _index, _path_tail, _state, _transition_fcn, sheaf::poset_component::index(), invariant(), is_initialized(), mark_visited(), next(), and put_has_visited().
Referenced by depth_first_iterator(), fiber_bundle::discretization_iterator::discretization_iterator(), fiber_bundle::eval_iterator::eval_iterator(), fields::field_eval_iterator::field_eval_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), fields::property_disc_iterator_1_1::property_disc_iterator_1_1(), reset(), tool::visualization_iterator_1_1::visualization_iterator_1_1(), tool::visualization_iterator_1_3::visualization_iterator_1_3(), tool::visualization_iterator_4_2::visualization_iterator_4_2(), and tool::visualization_iterator_4_3::visualization_iterator_4_3().
|
virtual |
Force the iterator to be done.
Reimplemented in fields::field_eval_iterator, fields::property_disc_iterator, fiber_bundle::eval_iterator, fiber_bundle::discretization_iterator, and tool::visualization_iterator.
Definition at line 356 of file depth_first_iterator.cc.
References _action, _filtered_path_tail, _index, _state, sheaf::scoped_index::invalidate(), invariant(), is_done(), next(), and release_cover_id_space_iterators().
Referenced by fields::base_space_map::base_space_map(), tool::visualization_iterator::force_is_done(), fiber_bundle::discretization_iterator::force_is_done(), fiber_bundle::eval_iterator::force_is_done(), fields::field_eval_iterator::force_is_done(), initialize_traversal(), is_done(), operator=(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), reset(), and fields::section_pusher::section_pusher().
const sheaf::scoped_index & sheaf::depth_first_iterator::greater_index | ( | ) | const |
The index of the greater member of the current link.
Definition at line 1038 of file depth_first_iterator.cc.
References _action, _filtered_path_tail, _greater_index, _index, sheaf::invalid_pod_index(), is_done(), is_initialized(), lesser_index(), and sheaf::scoped_index::pod().
Referenced by fields::field_eval_iterator::ensure_discretization_order(), sheaf::filtered_depth_first_member_iterator::greater_index(), index(), is_maximal(), fiber_bundle::eval_iterator::next(), and fields::property_disc_iterator_1_1::next().
bool sheaf::depth_first_iterator::has_visited | ( | pod_index_type | xhub_id | ) | const |
True if this has already visited member with hub id xhub_id.
Definition at line 891 of file depth_first_iterator.cc.
References anchor(), has_visited(), and is_initialized().
Referenced by sheaf::subposet::extremals_pa(), and sheaf::filtered_depth_first_member_iterator::has_visited().
bool sheaf::depth_first_iterator::has_visited | ( | const scoped_index & | xid | ) | const |
True if this has already visited member with id xid.
Definition at line 908 of file depth_first_iterator.cc.
References anchor(), has_visited(), sheaf::scoped_index::hub_pod(), and is_initialized().
bool sheaf::depth_first_iterator::has_visited | ( | const abstract_poset_member * | xmbr | ) | const |
True if this has already visited member xmbr.
Definition at line 925 of file depth_first_iterator.cc.
References anchor(), sheaf::poset_component::host(), sheaf::scoped_index::hub_pod(), sheaf::poset_component::index(), sheaf::poset_component::is_attached(), is_initialized(), and put_has_visited().
|
protected |
The marker bit vector. /.
Definition at line 1689 of file depth_first_iterator.cc.
References put_has_visited().
Referenced by ct(), fields::field_eval_iterator::enough_capacity(), has_visited(), fiber_bundle::discretization_iterator::initialize_has_visited(), initialize_has_visited(), mark_not_visited(), mark_visited(), next(), put_has_visited(), fields::field_eval_iterator::update_capacity(), and fiber_bundle::discretization_iterator::~discretization_iterator().
const sheaf::scoped_index & sheaf::depth_first_iterator::index | ( | ) | const |
The index of the current member of the iteration.
Definition at line 1127 of file depth_first_iterator.cc.
References _index, action(), depth(), greater_index(), is_done(), and lesser_index().
Referenced by fields::base_space_map::base_space_map(), tool::vtk_unstructured_grid_builder::build_pa(), fiber_bundle::base_space_member::c_minus(), fiber_bundle::base_space_member::c_not_pa(), fiber_bundle::eval_iterator::client_id(), fields::field_eval_iterator::db(), fiber_bundle::eval_iterator::db(), fiber_bundle::base_space_member::db(), fiber_bundle::sec_rep_space_member::discretization_ct(), erase_cover(), fiber_bundle::sec_rep_space_member::evaluation_ct(), sheaf::subposet::extremals_pa(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_traversal(), fiber_bundle::discretization_iterator::next(), fiber_bundle::eval_iterator::next(), fields::field_eval_iterator::next(), fields::refining_section_pusher::push(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::unstructured_block_builder::put_name_mode(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), fields::field_refiner::refine(), fields::section_pusher::section_pusher(), fields::field_eval_iterator::type_id(), fiber_bundle::eval_iterator::type_id(), fields::field_eval_iterator::type_name(), geometry::d_bin_point_locator< DC, DB >::update(), geometry::cylindrical_point_locator::update(), geometry::db0_point_locator< DC >::update(), geometry::point_locator::update_domain(), fiber_bundle::binary_section_dof_iterator::update_item(), and sheaf::filtered_depth_first_member_iterator::update_item().
|
protected |
Initializes the anchor.
Definition at line 1610 of file depth_first_iterator.cc.
References _anchor, _greater_index, _index, _lesser_index, anchor_is_ancestor_of(), sheaf::abstract_poset_member::attach_to_state(), sheaf::abstract_poset_member::clone(), sheaf::poset_component::detach_from_state(), sheaf::poset_component::host(), initialize_has_visited(), is_done(), sheaf::poset_component::is_same_state(), sheaf::any::is_same_type(), sheaf::poset_state_handle::member_id(), release_cover_id_space_iterators(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
Referenced by initialize_traversal().
|
protected |
Initializes the filter subposet from the client filter.
Definition at line 1704 of file depth_first_iterator.cc.
References _anchor, _client_filter, _new_filter, sheaf::zn_to_bool::b_and_sa(), sheaf::poset_component::host(), sheaf::poset_component::index(), sheaf::poset_component::is_attached(), is_done(), sheaf::poset_powerset_state::member(), sheaf::subposet_state::members(), sheaf::subposet::members(), sheaf::poset_state_handle::powerset(), sheaf::read_write_monitor_handle::state_is_read_accessible(), sheaf::poset_component::version(), and sheaf::poset_state_handle::version_index().
Referenced by initialize_filter(), initialize_traversal(), operator=(), sheaf::filtered_depth_first_iterator::put_filter(), and put_has_visited().
|
protected |
Initializes the client filter to xfilter then initializes the filter from the client filter.
Definition at line 1776 of file depth_first_iterator.cc.
References _anchor, _client_filter, _descending, _strict, sheaf::poset_component::attach_to_state(), descending(), sheaf::poset_component::host(), sheaf::poset_state_handle::includes_subposet(), initialize_filter(), invariant(), is_done(), sheaf::poset_component::is_same_state(), sheaf::read_write_monitor_handle::state_is_read_accessible(), and strict().
|
protected |
Initializes the client filter to the subposet with hub id xfilter_hub_id then initializes the filter from the client filter.
Definition at line 1811 of file depth_first_iterator.cc.
References _anchor, _client_filter, sheaf::poset_component::attach_to_state(), sheaf::poset_component::host(), sheaf::poset_state_handle::includes_subposet(), sheaf::poset_component::index(), initialize_filter(), is_done(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
|
protected |
Initializes the client filter to the subposet with id xfilter_id then initializes the filter from the client filter.
Definition at line 1839 of file depth_first_iterator.cc.
References _anchor, _client_filter, sheaf::poset_component::host(), sheaf::scoped_index::hub_pod(), sheaf::poset_state_handle::includes_subposet(), sheaf::poset_component::index(), initialize_filter(), is_done(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
|
protected |
Initializes the client filter to the subposet with name xfilter_name then initializes the filter from the client filter.
Definition at line 1865 of file depth_first_iterator.cc.
References _anchor, _client_filter, anchor(), sheaf::poset_component::attach_to_state(), sheaf::subposet::has_name(), sheaf::poset_component::host(), sheaf::poset_state_handle::includes_subposet(), initialize_filter(), is_done(), release_cover_id_space_iterators(), sheaf::read_write_monitor_handle::state_is_read_accessible(), and sheaf::poset_component::version_name().
|
protectedvirtual |
Initializes the has_visited markers.
Reimplemented in fiber_bundle::discretization_iterator.
Definition at line 1657 of file depth_first_iterator.cc.
References has_visited(), sheaf::poset_component::host(), is_done(), sheaf::poset_state_handle::member_index_ub(), sheaf::scoped_index::pod(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
Referenced by initialize_anchor(), fiber_bundle::discretization_iterator::initialize_has_visited(), and initialize_traversal().
|
protected |
Initializes _order and _transition_fcn.
Definition at line 1452 of file depth_first_iterator.cc.
References _order, _transition_fcn, initialize_traversal(), order(), and STD_TRANSITION_FCNS.
Referenced by sheaf::biorder_iterator::biorder_iterator(), depth_first_iterator(), detach_item(), fiber_bundle::discretization_iterator::discretization_iterator(), fiber_bundle::eval_iterator::eval_iterator(), fields::field_eval_iterator::field_eval_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), sheaf::linkorder_iterator::linkorder_iterator(), operator=(), sheaf::postorder_iterator::postorder_iterator(), sheaf::preorder_iterator::preorder_iterator(), and sheaf::triorder_iterator::triorder_iterator().
|
protected |
Initializes the anchor, has_visited markers and filter.
Definition at line 1472 of file depth_first_iterator.cc.
References _anchor, _descending, _strict, anchor(), anchor_is_ancestor_of(), descending(), filter(), index(), initialize_anchor(), initialize_filter(), initialize_has_visited(), invariant(), is_done(), is_initialized(), sheaf::any::is_same_type(), sheaf::read_write_monitor_handle::state_is_read_accessible(), strict(), sheaf::poset_component::version(), and sheaf::poset_component::version_index().
Referenced by fields::field_eval_iterator::field_eval_iterator(), initialize_order(), initialize_traversal(), operator=(), sheaf::filtered_depth_first_iterator::put_anchor(), fiber_bundle::discretization_iterator::put_schema_anchor(), and fiber_bundle::eval_iterator::put_schema_anchor().
|
protected |
Initializes the anchor, has_visited markers and filter.
Definition at line 1524 of file depth_first_iterator.cc.
References _anchor, _descending, _strict, anchor(), sheaf::abstract_poset_member::attach_to_state(), descending(), filter(), force_is_done(), index(), initialize_traversal(), invariant(), is_done(), is_initialized(), and strict().
|
protected |
Initializes the anchor, has_visited markers and filter.
Definition at line 1574 of file depth_first_iterator.cc.
References _descending, _strict, anchor(), descending(), filter(), sheaf::scoped_index::hub_pod(), index(), initialize_anchor(), initialize_traversal(), invariant(), is_done(), is_initialized(), and strict().
|
virtual |
The class invariant.
Reimplemented from sheaf::any.
Reimplemented in sheaf::filtered_depth_first_iterator, tool::visualization_iterator_1_3, tool::visualization_iterator_4_3, tool::visualization_iterator_1_1, tool::visualization_iterator_4_2, tool::visualization_iterator, sheaf::triorder_iterator, sheaf::linkorder_iterator, sheaf::postorder_iterator, and sheaf::preorder_iterator.
Definition at line 119 of file depth_first_iterator.cc.
References _anchor, _new_filter, _state, action(), anchor(), sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::any::invariant(), sheaf::any::invariant_check(), is_done(), is_initialized(), NULL_FILTER, and order().
Referenced by clone(), depth_first_iterator(), first(), force_is_done(), initialize_filter(), initialize_traversal(), fiber_bundle::discretization_iterator::invariant(), fiber_bundle::eval_iterator::invariant(), sheaf::filtered_depth_first_iterator::invariant(), fields::field_eval_iterator::invariant(), operator=(), and reset().
|
virtual |
True if other conforms to this.
Reimplemented from sheaf::any.
Reimplemented in fields::field_eval_iterator, fields::property_disc_iterator, fields::property_disc_iterator_1_3, fields::property_disc_iterator_1_2, fields::property_disc_iterator_4_3, fields::property_disc_iterator_4_2, fields::property_disc_iterator_1_1, sheaf::filtered_depth_first_iterator, tool::visualization_iterator_1_3, tool::visualization_iterator_4_3, fiber_bundle::eval_iterator, tool::visualization_iterator_1_1, tool::visualization_iterator_4_2, fiber_bundle::discretization_iterator, tool::visualization_iterator, sheaf::triorder_iterator, sheaf::linkorder_iterator, sheaf::postorder_iterator, sheaf::preorder_iterator, and sheaf::biorder_iterator.
Definition at line 78 of file depth_first_iterator.cc.
References clone().
Referenced by ~depth_first_iterator().
bool sheaf::depth_first_iterator::is_done | ( | ) | const |
True if iteration finished.
Definition at line 337 of file depth_first_iterator.cc.
References _state, and force_is_done().
Referenced by fields::base_space_map::base_space_map(), tool::vtk_unstructured_grid_builder::build_pa(), fiber_bundle::base_space_member::c_minus(), fiber_bundle::base_space_member::c_not_pa(), fiber_bundle::eval_iterator::client_id(), fields::field_eval_iterator::coordinate_discretization_members(), fields::field_eval_iterator::coordinate_evaluator(), ct(), fields::field_eval_iterator::db(), fiber_bundle::eval_iterator::db(), fiber_bundle::base_space_member::db(), depth(), depth_first_iterator(), fiber_bundle::eval_iterator::discretization_client_id(), fiber_bundle::sec_rep_space_member::discretization_ct(), fiber_bundle::discretization_iterator::discretization_iterator(), fiber_bundle::eval_iterator::discretization_members(), fields::field_eval_iterator::enough_capacity(), fiber_bundle::eval_iterator::eval_iterator(), fiber_bundle::sec_rep_space_member::evaluation_ct(), fiber_bundle::eval_iterator::evaluator(), sheaf::subposet::extremals_pa(), fields::field_eval_iterator::field_eval_iterator(), filter(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), fiber_bundle::discretization_iterator::force_is_done(), fiber_bundle::eval_iterator::force_is_done(), force_is_done(), fields::field_eval_iterator::force_is_done(), fiber_bundle::eval_iterator::gather_dofs(), fiber_bundle::sparse_field_dof_map::get_component_dofs(), greater_index(), index(), initialize_anchor(), fields::field_eval_iterator::initialize_coordinate_schema(), initialize_filter(), fiber_bundle::discretization_iterator::initialize_has_visited(), initialize_has_visited(), fields::field_eval_iterator::initialize_property_schema(), fiber_bundle::discretization_iterator::initialize_schema_anchor(), fiber_bundle::eval_iterator::initialize_schema_anchor(), initialize_traversal(), invariant(), sheaf::filtered_depth_first_member_iterator::is_done(), tool::vtk_unstructured_grid_builder::is_tensor(), lesser_index(), fiber_bundle::discretization_iterator::next(), fiber_bundle::eval_iterator::next(), fields::property_disc_iterator_1_1::next(), next(), fields::field_eval_iterator::next(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), fields::property_disc_iterator_1_1::property_disc_iterator_1_1(), fields::field_eval_iterator::property_discretization_members(), fields::field_eval_iterator::property_evaluator(), fields::discretization_pusher::push(), fields::refining_section_pusher::push(), sheaf::filtered_depth_first_iterator::put_anchor(), fiber_bundle::sparse_field_dof_map::put_component_dofs(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::unstructured_block_builder::put_name_mode(), fields::field_vd::put_property_dofs(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), fields::field_refiner::refine(), fields::body_pusher::same_fiber(), fiber_bundle::eval_iterator::scatter_dofs(), fields::section_pusher::section_pusher(), fields::field_eval_iterator::type_id(), fiber_bundle::eval_iterator::type_id(), fields::field_eval_iterator::type_name(), geometry::d_bin_point_locator< DC, DB >::update(), geometry::cylindrical_point_locator::update(), geometry::db0_point_locator< DC >::update(), fields::field_eval_iterator::update_capacity(), geometry::point_locator::update_domain(), fiber_bundle::binary_section_dof_iterator::update_item(), sheaf::filtered_depth_first_member_iterator::update_item(), tool::visualization_iterator_1_1::visualization_iterator_1_1(), tool::visualization_iterator_1_3::visualization_iterator_1_3(), tool::visualization_iterator_4_2::visualization_iterator_4_2(), and tool::visualization_iterator_4_3::visualization_iterator_4_3().
|
virtual |
True if this has been initialized for iteration with respect to a specific anchor.
Reimplemented in fiber_bundle::eval_iterator, and fiber_bundle::discretization_iterator.
Definition at line 195 of file depth_first_iterator.cc.
References _anchor, and anchor().
Referenced by anchor(), sheaf::biorder_iterator::biorder_iterator(), sheaf::biorder_iterator::clone(), sheaf::linkorder_iterator::clone(), sheaf::postorder_iterator::clone(), sheaf::preorder_iterator::clone(), sheaf::triorder_iterator::clone(), clone(), sheaf::filtered_depth_first_iterator::clone(), fields::field_eval_iterator::coordinate_evaluator(), fields::field_eval_iterator::coordinate_schema_anchor(), ct(), depth_first_iterator(), fields::field_eval_iterator::field_eval_iterator(), filter(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), first(), greater_index(), has_visited(), initialize_traversal(), sheaf::filtered_depth_first_member_iterator::invariant(), invariant(), fiber_bundle::discretization_iterator::is_initialized(), fiber_bundle::eval_iterator::is_initialized(), sheaf::filtered_depth_first_member_iterator::is_initialized(), is_maximal(), lesser_index(), sheaf::linkorder_iterator::linkorder_iterator(), mark_not_visited(), mark_visited(), next(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), order(), sheaf::postorder_iterator::postorder_iterator(), sheaf::preorder_iterator::preorder_iterator(), fields::property_disc_iterator_1_1::property_disc_iterator_1_1(), fields::field_eval_iterator::property_evaluator(), fields::field_eval_iterator::property_schema_anchor(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), put_has_visited(), reset(), sheaf::triorder_iterator::triorder_iterator(), tool::visualization_iterator_1_1::visualization_iterator_1_1(), tool::visualization_iterator_1_3::visualization_iterator_1_3(), tool::visualization_iterator_4_2::visualization_iterator_4_2(), and tool::visualization_iterator_4_3::visualization_iterator_4_3().
bool sheaf::depth_first_iterator::is_maximal | ( | ) | const |
True if the current member has no greater member within the subposet visited by this iterator.
Definition at line 1015 of file depth_first_iterator.cc.
References greater_index(), is_initialized(), sheaf::is_valid(), and sheaf::scoped_index::is_valid().
Referenced by put_visit_once().
const sheaf::scoped_index & sheaf::depth_first_iterator::lesser_index | ( | ) | const |
The index of the lesser member of the current link.
Definition at line 1060 of file depth_first_iterator.cc.
References _action, _index, _lesser_index, _path_head_lc, action(), sheaf::index_space_iterator::hub_pod(), is_done(), is_initialized(), and sheaf::scoped_index::pod().
Referenced by greater_index(), index(), sheaf::filtered_depth_first_member_iterator::lesser_index(), and fiber_bundle::unstructured_block_builder::put_name_mode().
|
protected |
Mark xmbr as not visited. Warning: this function can change the state of the iteration in unpredictable ways. Use only if you know what you are doing.
Definition at line 1392 of file depth_first_iterator.cc.
References anchor(), attach_item(), has_visited(), sheaf::poset_component::index(), sheaf::poset_component::is_attached(), is_initialized(), and put_has_visited().
Referenced by mark_visited().
|
protected |
Mark xmbr as visited. Warning: this function can change the state of the iteration in unpredictable ways. Use only if you know what you are doing.
Definition at line 1366 of file depth_first_iterator.cc.
References anchor(), has_visited(), sheaf::poset_component::index(), sheaf::poset_component::is_attached(), is_initialized(), mark_not_visited(), and put_has_visited().
Referenced by first().
|
inline |
Makes this the next member of the subset.
Definition at line 238 of file depth_first_iterator.h.
Referenced by fields::base_space_map::base_space_map(), tool::vtk_unstructured_grid_builder::build_pa(), ct(), sheaf::subposet::extremals_pa(), first(), force_is_done(), fields::property_disc_iterator_1_1::get_prop_disc_values(), fields::property_disc_iterator_4_2::get_prop_disc_values(), fields::property_disc_iterator_4_3::get_prop_disc_values(), fields::property_disc_iterator_1_2::get_prop_disc_values(), fields::property_disc_iterator_1_3::get_prop_disc_values(), tool::visualization_iterator_1_1::invariant(), tool::visualization_iterator_4_2::invariant(), tool::visualization_iterator_4_3::invariant(), tool::visualization_iterator_1_3::invariant(), tool::vtk_unstructured_grid_builder::is_tensor(), tool::visualization_iterator_1_1::next(), tool::visualization_iterator_4_2::next(), tool::visualization_iterator_4_3::next(), tool::visualization_iterator_1_3::next(), fiber_bundle::discretization_iterator::next(), fiber_bundle::eval_iterator::next(), fields::property_disc_iterator_1_1::next(), sheaf::filtered_depth_first_member_iterator::next(), fields::field_eval_iterator::next(), fiber_bundle::unstructured_block_builder::put_name_mode(), fields::field_vd::put_property_dofs(), fields::body_pusher::same_fiber(), and fields::section_pusher::section_pusher().
|
virtual |
Makes this the next member of the subset. If action() == PREVISIT_ACTION and xtruncate, new this is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited. If action() != PREVISIT_ACTION, xtruncate is ignored.
Reimplemented in fields::field_eval_iterator, fields::property_disc_iterator_1_3, fields::property_disc_iterator_1_2, fields::property_disc_iterator_4_3, fields::property_disc_iterator_4_2, fields::property_disc_iterator_1_1, fiber_bundle::eval_iterator, fiber_bundle::discretization_iterator, tool::visualization_iterator_1_3, tool::visualization_iterator_4_3, tool::visualization_iterator_1_1, and tool::visualization_iterator_4_2.
Definition at line 387 of file depth_first_iterator.cc.
References _action, _anchor, _descending, _filtered_path_tail, _index, _path_head, _path_head_lc, _path_tail, _state, _strict, _transition_fcn, _visit_once, attach_item(), sheaf::poset_state_handle::clear_cover(), detach_item(), filter(), sheaf::index_space_iterator::force_is_done(), sheaf::poset_state_handle::get_cover_id_space_iterator(), has_visited(), sheaf::poset_component::host(), sheaf::index_space_iterator::hub_pod(), sheaf::poset_component::index(), sheaf::scoped_index::invalidate(), sheaf::index_space_iterator::is_done(), is_done(), is_initialized(), iterator_state_names, sheaf::index_space_iterator::next(), sheaf::scoped_index::pod(), put_has_visited(), sheaf::poset_state_handle::release_cover_id_space_iterator(), and reset().
sheaf::depth_first_iterator & sheaf::depth_first_iterator::operator= | ( | const depth_first_iterator & | xother | ) |
Assignment operator.
Definition at line 1252 of file depth_first_iterator.cc.
References _anchor, _client_filter, _descending, _new_filter, _order, _strict, _visit_once, anchor(), descending(), sheaf::poset_component::detach_from_state(), filter(), first(), force_is_done(), sheaf::poset_component::index(), initialize_filter(), initialize_order(), initialize_traversal(), invariant(), is_done(), is_initialized(), order(), strict(), sheaf::poset_component::version(), sheaf::poset_component::version_index(), and visit_once().
Referenced by depth_first_iterator(), and sheaf::filtered_depth_first_iterator::operator=().
sheaf::depth_first_iterator::order_type sheaf::depth_first_iterator::order | ( | ) | const |
The order of the iteration. Determines which actions are exported to the client.
Definition at line 176 of file depth_first_iterator.cc.
References _order, and is_initialized().
Referenced by depth_first_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_order(), sheaf::biorder_iterator::invariant(), sheaf::linkorder_iterator::invariant(), sheaf::postorder_iterator::invariant(), sheaf::preorder_iterator::invariant(), sheaf::triorder_iterator::invariant(), fiber_bundle::discretization_iterator::invariant(), fiber_bundle::eval_iterator::invariant(), invariant(), fields::property_disc_iterator_1_1::invariant(), fields::field_eval_iterator::invariant(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), and sheaf::filtered_depth_first_member_iterator::order().
void sheaf::depth_first_iterator::put_has_visited | ( | pod_index_type | xhub_id, |
bool | xvalue | ||
) |
Set the visited marker for hub id xhub_id to xvalue. Intended for use reseting iterator without having to reset entire collection of markers.
Definition at line 945 of file depth_first_iterator.cc.
References anchor(), has_visited(), is_initialized(), and sheaf::zn_to_bool::put().
Referenced by first(), has_visited(), mark_not_visited(), mark_visited(), fiber_bundle::discretization_iterator::next(), fiber_bundle::eval_iterator::next(), next(), fields::field_eval_iterator::next(), sheaf::filtered_depth_first_member_iterator::put_has_visited(), and fiber_bundle::discretization_iterator::~discretization_iterator().
void sheaf::depth_first_iterator::put_has_visited | ( | const scoped_index & | xid, |
bool | xvalue | ||
) |
Set the visisted marker for id xid to xvalue. Intended for use reseting iterator without having to reset entire collection of markers.
Definition at line 967 of file depth_first_iterator.cc.
References anchor(), has_visited(), sheaf::scoped_index::hub_pod(), is_initialized(), sheaf::zn_to_bool::put(), and visit_once().
|
protected |
Sets _has_visited to xhas_visited. /.
Definition at line 1696 of file depth_first_iterator.cc.
References initialize_filter().
void sheaf::depth_first_iterator::put_visit_once | ( | bool | xvisit_once | ) |
Set visit_once() to xvisit_once.
Definition at line 996 of file depth_first_iterator.cc.
References _visit_once, is_maximal(), and visit_once().
Referenced by fiber_bundle::base_space_member::c_minus(), fiber_bundle::eval_iterator::eval_iterator(), and visit_once().
|
protected |
Release the cover iterators back to the pool of iterators.
Definition at line 1906 of file depth_first_iterator.cc.
References _anchor, _path_head, _path_head_lc, _path_tail, BIORDER_TRANSITION_FCN, sheaf::poset_state_handle::get_read_access(), sheaf::poset_component::host(), iterator_state_names, LINKORDER_TRANSITION_FCN, POSTORDER_TRANSITION_FCN, PREORDER_TRANSITION_FCN, sheaf::poset_state_handle::release_access(), sheaf::poset_state_handle::release_cover_id_space_iterator(), STD_TRANSITION_FCNS, and TRIORDER_TRANSITION_FCN.
Referenced by force_is_done(), initialize_anchor(), initialize_filter(), and ~depth_first_iterator().
|
virtual |
Restarts the iteration over the down set of anchor().
Reimplemented in fields::field_eval_iterator, fields::property_disc_iterator_1_2, fields::property_disc_iterator_4_2, and tool::visualization_iterator.
Definition at line 806 of file depth_first_iterator.cc.
References _anchor, _descending, _strict, anchor(), ct(), descending(), sheaf::zn_to_bool::extend_to(), first(), force_is_done(), sheaf::poset_component::host(), invariant(), is_initialized(), sheaf::zn_to_bool::make_false_sa(), sheaf::poset_state_handle::member_index_ub(), sheaf::scoped_index::pod(), and strict().
Referenced by fiber_bundle::base_space_member::c_minus(), ct(), depth_first_iterator(), fiber_bundle::discretization_iterator::discretization_iterator(), fiber_bundle::eval_iterator::eval_iterator(), sheaf::subposet::extremals_pa(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), next(), fiber_bundle::unstructured_block_builder::put_name_mode(), tool::visualization_iterator::reset(), sheaf::filtered_depth_first_member_iterator::reset(), fields::field_eval_iterator::reset(), fiber_bundle::section_eval_iterator::reset_components(), geometry::d_bin_point_locator< DC, DB >::update(), and geometry::cylindrical_point_locator::update().
bool sheaf::depth_first_iterator::strict | ( | ) | const |
True if iterating over xstrict up/down set of anchor.
Definition at line 293 of file depth_first_iterator.cc.
References _strict, and filter().
Referenced by depth_first_iterator(), descending(), fiber_bundle::discretization_iterator::discretization_iterator(), fiber_bundle::eval_iterator::eval_iterator(), fields::field_eval_iterator::field_eval_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_filter(), initialize_traversal(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), fields::property_disc_iterator_1_1::property_disc_iterator_1_1(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), sheaf::filtered_depth_first_iterator::put_strict(), reset(), sheaf::filtered_depth_first_member_iterator::strict(), tool::visualization_iterator_1_1::visualization_iterator_1_1(), tool::visualization_iterator_1_3::visualization_iterator_1_3(), tool::visualization_iterator_4_2::visualization_iterator_4_2(), and tool::visualization_iterator_4_3::visualization_iterator_4_3().
|
inline |
Makes this the next member of the subset which is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited.
Definition at line 249 of file depth_first_iterator.h.
Referenced by fields::base_space_map::base_space_map(), fiber_bundle::base_space_member::c_minus(), fiber_bundle::base_space_member::c_not_pa(), fiber_bundle::base_space_member::db(), fiber_bundle::sec_rep_space_member::discretization_ct(), fiber_bundle::sec_rep_space_member::evaluation_ct(), fiber_bundle::unstructured_block_builder::put_name_mode(), fields::section_pusher::section_pusher(), sheaf::preorder_member_iterator::truncate(), geometry::d_bin_point_locator< DC, DB >::update(), geometry::cylindrical_point_locator::update(), geometry::db0_point_locator< DC >::update(), and geometry::point_locator::update_domain().
bool sheaf::depth_first_iterator::visit_once | ( | ) | const |
True if traversal should only visit a member once; that is, it should not revisit members it has already visited.
Definition at line 989 of file depth_first_iterator.cc.
References _visit_once, and put_visit_once().
Referenced by depth_first_iterator(), fiber_bundle::eval_iterator::eval_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), operator=(), sheaf::filtered_depth_first_iterator::operator=(), put_has_visited(), and put_visit_once().
|
protected |
The type of action the client should take; the state of the iterator.
Definition at line 510 of file depth_first_iterator.h.
Referenced by action(), depth_first_iterator(), force_is_done(), greater_index(), lesser_index(), and next().
|
protected |
The top member of the down set being iterated over.
Definition at line 504 of file depth_first_iterator.h.
Referenced by anchor(), depth_first_iterator(), fields::field_eval_iterator::ensure_discretization_order(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), first(), initialize_anchor(), initialize_filter(), initialize_traversal(), invariant(), is_initialized(), fiber_bundle::eval_iterator::next(), next(), operator=(), release_cover_id_space_iterators(), reset(), and ~depth_first_iterator().
|
protected |
The filter specified by the client.
Definition at line 531 of file depth_first_iterator.h.
Referenced by filter(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_filter(), operator=(), sheaf::filtered_depth_first_iterator::put_filter(), and ~depth_first_iterator().
|
protected |
True if iterating over the up/down set of anchor.
Definition at line 541 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), descending(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_filter(), initialize_traversal(), fiber_bundle::discretization_iterator::next(), next(), operator=(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_descending(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), and reset().
|
protected |
The tail of the filtered path to the current member of the iteration. Contains only members which pass the filter; equivalent to the path in the subposet selected by the filter.
Definition at line 663 of file depth_first_iterator.h.
Referenced by force_is_done(), greater_index(), and next().
|
mutableprotected |
The index of the greater member of the current link.
Definition at line 521 of file depth_first_iterator.h.
Referenced by greater_index(), and initialize_anchor().
|
protected |
The index of the lesser end of the current link; the current item in the iteration.
Definition at line 516 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), first(), force_is_done(), greater_index(), index(), initialize_anchor(), lesser_index(), fiber_bundle::discretization_iterator::next(), fields::property_disc_iterator_1_1::next(), and next().
|
mutableprotected |
The index of the lesser member of the current link.
Definition at line 526 of file depth_first_iterator.h.
Referenced by initialize_anchor(), and lesser_index().
|
protected |
True if this allocated a new filter;.
Definition at line 536 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_filter(), invariant(), operator=(), and ~depth_first_iterator().
|
protected |
The order of the iteration.
Definition at line 551 of file depth_first_iterator.h.
Referenced by initialize_order(), operator=(), and order().
|
protected |
The head of the path to the current member of the iteration lesser_index() == this->index() == **_path_head == lesser member of current link.
Definition at line 650 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), next(), and release_cover_id_space_iterators().
|
protected |
The lower cover iterator for the head of the path to the current member of the iteration.
Definition at line 644 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), lesser_index(), next(), and release_cover_id_space_iterators().
|
protected |
The tail of the path to the current member of the iteration greater_index() == **(_path_tail.top()) == greater member of current link.
Definition at line 656 of file depth_first_iterator.h.
Referenced by depth(), first(), next(), and release_cover_id_space_iterators().
|
protected |
The current state of iteration.
Definition at line 638 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), erase_cover(), first(), force_is_done(), invariant(), is_done(), next(), and fields::field_eval_iterator::repeat().
|
protected |
True if iterating over the strict up/down set of anchor.
Definition at line 546 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), sheaf::filtered_depth_first_iterator::filtered_depth_first_iterator(), initialize_filter(), initialize_traversal(), next(), operator=(), sheaf::filtered_depth_first_iterator::put_anchor(), sheaf::filtered_depth_first_iterator::put_filter(), fiber_bundle::discretization_iterator::put_schema_anchor(), fiber_bundle::eval_iterator::put_schema_anchor(), sheaf::filtered_depth_first_iterator::put_strict(), reset(), and strict().
|
protected |
The current state transition function for the iterator finite state machine. Points to one of the predefined transition functions.
Definition at line 591 of file depth_first_iterator.h.
Referenced by first(), initialize_order(), and next().
|
protected |
True if traversal should only visit a member once; that is, it should not revisit members it has already visited.
Definition at line 669 of file depth_first_iterator.h.
Referenced by depth_first_iterator(), next(), operator=(), put_visit_once(), and visit_once().
|
staticprotected |
The predefined transition function for biorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state.
Definition at line 619 of file depth_first_iterator.h.
Referenced by release_cover_id_space_iterators().
|
staticprotected |
The names of the iterator states, convenient for debugging.
Definition at line 585 of file depth_first_iterator.h.
Referenced by next(), and release_cover_id_space_iterators().
|
staticprotected |
The predefined transition function for linkorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state.
Definition at line 612 of file depth_first_iterator.h.
Referenced by release_cover_id_space_iterators().
|
static |
Placeholder for null filter.
Definition at line 117 of file depth_first_iterator.h.
Referenced by invariant().
|
staticprotected |
The predefined transition function for postorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state.
Definition at line 605 of file depth_first_iterator.h.
Referenced by release_cover_id_space_iterators().
|
staticprotected |
The predefined transition function for postorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state.
Definition at line 598 of file depth_first_iterator.h.
Referenced by release_cover_id_space_iterators().
|
staticprotected |
The set of predefined transition functions.
Definition at line 633 of file depth_first_iterator.h.
Referenced by initialize_order(), and release_cover_id_space_iterators().
|
staticprotected |
The predefined transition function for triorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state.
Definition at line 626 of file depth_first_iterator.h.
Referenced by release_cover_id_space_iterators().