dejavu
Fast probabilistic symmetry detection.
|
Inprocessing for symmetry detection. More...
#include <inprocess.h>
Public Member Functions | |
void | sort_nodes_map (std::vector< unsigned long > *map, int *colmap) |
void | split_with_invariant (sgraph *g, ir::controller &local_state, worklist_t< unsigned long > &inv) |
void | sort_nodes_map (unsigned long *map, int *colmap) |
void | set_splits_hint (int splits_hint) |
int | check_individualizations (ir::limited_save &root_save) |
bool | inprocess (sgraph *g, ir::shared_tree &tree, groups::compressed_schreier &group, ir::controller &local_state, ir::limited_save &root_save, int, bool use_bfs_inprocess, bool use_shallow_inprocess, bool use_shallow_quadratic_inprocess, groups::orbit &orbit_partition) |
Static Public Member Functions | |
static void | shallow_bfs_invariant (sgraph *g, ir::controller &local_state, worklist_t< unsigned long > &inv, groups::orbit &orbit_partition, int depth=8, bool lower_depth=true) |
static void | shallow_bfs_invariant2 (sgraph *g, ir::controller &local_state, worklist_t< unsigned long > &inv) |
Public Attributes | |
big_number | s_grp_sz |
int | h_splits_hint = INT32_MAX |
std::vector< std::pair< int, int > > | inproc_can_individualize |
std::vector< std::pair< int, int > > | inproc_maybe_individualize |
std::vector< int > | inproc_fixed_points |
std::vector< int > | nodes |
worklist | hash |
Inprocessing for symmetry detection.
Reads a graph and aspects of the state of the individualization-refinement search. Then, it tries to simplify the graph according to the given state, as well as further techniques such as invariants.
Definition at line 22 of file inprocess.h.
|
inline |
Definition at line 242 of file inprocess.h.
|
inline |
Inprocess the (colored) graph using all the available solver data.
g | graph |
tree | currently available ir tree |
group | currently available group of symmetries |
local_state | workspace to perform individualization&refinement in |
root_save | the current coloring of the IR tree root |
budget | a limit on the budget |
Definition at line 269 of file inprocess.h.
|
inline |
Give hint as to how deep we need to look for shallow invariants.
splits_hint | the hint |
Definition at line 237 of file inprocess.h.
|
inlinestatic |
Computes an invariant using a shallow
breadth-first search.
g | the graph |
local_state | state used to perform IR computations |
inv | place to store the invariant |
orbit_partition | (partial) orbit partition of the graph, if available |
depth | depth of trace to look at |
lower_depth | whether to try to lower the depth, if a smaller distinguishing depth is found |
Definition at line 40 of file inprocess.h.
|
inlinestatic |
Computes an invariant using a shallow
breadth-first search for 2 consecutive levels.
g | the graph |
local_state | state used to perform IR computations |
inv | place to store the invariant |
Definition at line 173 of file inprocess.h.
|
inline |
Definition at line 96 of file inprocess.h.
|
inline |
Definition at line 148 of file inprocess.h.
|
inline |
Refines the given IR state according to the given invariant.
g | the graph |
local_state | the IR state |
inv | the node invariant |
Definition at line 121 of file inprocess.h.
int dejavu::search_strategy::inprocessor::h_splits_hint = INT32_MAX |
Definition at line 26 of file inprocess.h.
worklist dejavu::search_strategy::inprocessor::hash |
Definition at line 94 of file inprocess.h.
std::vector<std::pair<int, int> > dejavu::search_strategy::inprocessor::inproc_can_individualize |
vertices that can be individualized
Definition at line 28 of file inprocess.h.
std::vector<int> dejavu::search_strategy::inprocessor::inproc_fixed_points |
vertices fixed by inprocessing
Definition at line 91 of file inprocess.h.
std::vector<std::pair<int, int> > dejavu::search_strategy::inprocessor::inproc_maybe_individualize |
vertices that can be individualized
Definition at line 89 of file inprocess.h.
std::vector<int> dejavu::search_strategy::inprocessor::nodes |
Definition at line 92 of file inprocess.h.
big_number dejavu::search_strategy::inprocessor::s_grp_sz |
group size
Definition at line 25 of file inprocess.h.