dejavu
Fast probabilistic symmetry detection.
|
Controls movement in IR tree. More...
#include <ir.h>
Public Attributes | |
coloring * | c = nullptr |
trace * | T = nullptr |
std::vector< int > | singletons |
std::vector< int > * | compare_singletons = nullptr |
std::vector< int > | base_vertex |
std::vector< base_info > | base |
std::vector< int > * | compare_base_vertex = nullptr |
std::vector< base_info > * | compare_base = nullptr |
coloring | leaf_color |
markset | touched_color |
worklist | touched_color_list |
worklist | prev_color_list |
int | s_base_pos = 0 |
Controls movement in IR tree.
Keeps a state of an IR node. Enables the movement to a child of the node, or to the parent of the node. The controller manages data structures and functions, which facilitate the trace T as well as the reversal of color refinement.
Has different modes (managed by mode) depending on whether color refinement should be reversible or not.
|
inline |
|
inline |
Certifies whether the provided automorphism
is indeed an automorphism of the graph g
. Runs in time roughly in the support of automorphism
.
Uses internal workspace to perform this operation efficiently.
g | The graph. |
automorphism | The automorphism. |
automorphism
is an automorphism of g
.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Load a partial state into this controller.
state | A reference to the limited_save from which the state will be loaded. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Save a partial state of this controller.
state | A reference to the limited_save in which the state will be stored. |
|
inline |
Whether to record additional deviation information once a deviation from the comparison trace is found. Only applicable when use_trace_early_out is set. Essentially delays the termination of color refinement to record more information into the trace invariant.
deviation_inc | how many deviations to add before terminating (default = 48) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Difference-checking. Records differences between this state and the given other_state
. Before using this, this state and other_state
should start from the same node of the IR tree, and the difference should be reset at that point. Then, after each individualization this update function should be called. The function keeps track of all colors that are non-matching.
other_state | the other state |
|
inline |
Whether to record additional deviation information once a deviation from the comparison trace is found. Only applicable when use_trace_early_out is set. Essentially delays the termination of color refinement to record more information into the trace invariant.
deviation_inc_active | Whether increased deviation is recorded or not. |
|
inline |
Enables or disables whether following move_to_child calls will be reversible using move_to_parent, or not. Using non-reversible calls to move_to_child is faster.
When recording a trace using mode_write_base, computations are always reversible and calling this function will have no effect.
reversible |
|
inline |
Whether to record additional deviation information once a deviation from the comparison trace is found. Only applicable when use_trace_early_out is set. Essentially delays the termination of color refinement to record more information into the trace invariant.
deviation_inc_active | Whether increased deviation is recorded or not. |
|
inline |
|
inline |
Perform the given walk from the given IR node.
g | The graph. |
start_from | A limited_save describing the IR node from which the walk should be performed. |
vertices | A vector of vertices that describes the walk, i.e., these vertices will be individualized in the given order. |
|
inline |
|
inline |
|
inline |
std::vector<base_info> dejavu::ir::controller::base |
std::vector<int> dejavu::ir::controller::base_vertex |
coloring* dejavu::ir::controller::c = nullptr |
std::vector<base_info>* dejavu::ir::controller::compare_base = nullptr |
std::vector<int>* dejavu::ir::controller::compare_base_vertex = nullptr |
std::vector<int>* dejavu::ir::controller::compare_singletons = nullptr |
coloring dejavu::ir::controller::leaf_color |
worklist dejavu::ir::controller::prev_color_list |
int dejavu::ir::controller::s_base_pos = 0 |
trace* dejavu::ir::controller::T = nullptr |
markset dejavu::ir::controller::touched_color |
worklist dejavu::ir::controller::touched_color_list |