dejavu
Fast probabilistic symmetry detection.
Loading...
Searching...
No Matches
dejavu::search_strategy::inprocessor Class Reference

Inprocessing for symmetry detection. More...

#include <inprocess.h>

+ Collaboration diagram for dejavu::search_strategy::inprocessor:

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
 

Detailed Description

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.

Member Function Documentation

◆ check_individualizations()

int dejavu::search_strategy::inprocessor::check_individualizations ( ir::limited_save root_save)
inline

Definition at line 242 of file inprocess.h.

◆ inprocess()

bool dejavu::search_strategy::inprocessor::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 
)
inline

Inprocess the (colored) graph using all the available solver data.

Parameters
ggraph
treecurrently available ir tree
groupcurrently available group of symmetries
local_stateworkspace to perform individualization&refinement in
root_savethe current coloring of the IR tree root
budgeta limit on the budget
Returns
whether any of the inprocessing techniques succeeded

Definition at line 269 of file inprocess.h.

◆ set_splits_hint()

void dejavu::search_strategy::inprocessor::set_splits_hint ( int  splits_hint)
inline

Give hint as to how deep we need to look for shallow invariants.

Parameters
splits_hintthe hint

Definition at line 237 of file inprocess.h.

◆ shallow_bfs_invariant()

static void dejavu::search_strategy::inprocessor::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 
)
inlinestatic

Computes an invariant using a shallow breadth-first search.

Parameters
gthe graph
local_statestate used to perform IR computations
invplace to store the invariant
orbit_partition(partial) orbit partition of the graph, if available
depthdepth of trace to look at
lower_depthwhether to try to lower the depth, if a smaller distinguishing depth is found

Definition at line 40 of file inprocess.h.

◆ shallow_bfs_invariant2()

static void dejavu::search_strategy::inprocessor::shallow_bfs_invariant2 ( sgraph g,
ir::controller local_state,
worklist_t< unsigned long > &  inv 
)
inlinestatic

Computes an invariant using a shallow breadth-first search for 2 consecutive levels.

Parameters
gthe graph
local_statestate used to perform IR computations
invplace to store the invariant

Definition at line 173 of file inprocess.h.

◆ sort_nodes_map() [1/2]

void dejavu::search_strategy::inprocessor::sort_nodes_map ( std::vector< unsigned long > *  map,
int *  colmap 
)
inline

Definition at line 96 of file inprocess.h.

◆ sort_nodes_map() [2/2]

void dejavu::search_strategy::inprocessor::sort_nodes_map ( unsigned long *  map,
int *  colmap 
)
inline

Definition at line 148 of file inprocess.h.

◆ split_with_invariant()

void dejavu::search_strategy::inprocessor::split_with_invariant ( sgraph g,
ir::controller local_state,
worklist_t< unsigned long > &  inv 
)
inline

Refines the given IR state according to the given invariant.

Parameters
gthe graph
local_statethe IR state
invthe node invariant

Definition at line 121 of file inprocess.h.

Member Data Documentation

◆ h_splits_hint

int dejavu::search_strategy::inprocessor::h_splits_hint = INT32_MAX

Definition at line 26 of file inprocess.h.

◆ hash

worklist dejavu::search_strategy::inprocessor::hash

Definition at line 94 of file inprocess.h.

◆ inproc_can_individualize

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.

◆ inproc_fixed_points

std::vector<int> dejavu::search_strategy::inprocessor::inproc_fixed_points

vertices fixed by inprocessing

Definition at line 91 of file inprocess.h.

◆ inproc_maybe_individualize

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.

◆ nodes

std::vector<int> dejavu::search_strategy::inprocessor::nodes

Definition at line 92 of file inprocess.h.

◆ s_grp_sz

big_number dejavu::search_strategy::inprocessor::s_grp_sz

group size

Definition at line 25 of file inprocess.h.


The documentation for this class was generated from the following file: