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

The dejavu solver. More...

#include <dejavu.h>

Public Member Functions

void set_error_bound (int error_bound=10)
 
int get_error_bound () const
 
void set_true_random (bool use_true_random=true)
 
void set_prefer_dfs (bool prefer_dfs=true)
 
void set_pseudo_random (bool use_pseudo_random=true)
 
void set_seed (int seed=0)
 
void set_strong_certification (bool use_strong_certification=true)
 
void set_disallow_alteration (bool may_alter_graph=false)
 
void set_decompose (bool use_decompose=true)
 
void randomize_seed ()
 
void set_print (bool print=true)
 
dej_nodiscard big_number get_automorphism_group_size () const
 
dej_nodiscard bool get_deterministic_termination () const
 
void automorphisms (static_graph *g, dejavu_hook *hook=nullptr)
 
void automorphisms (static_graph *g, dejavu_hook hook)
 
void automorphisms (static_graph *g, hooks::hook_interface &hook)
 
void automorphisms (sgraph *g, int *colmap=nullptr, dejavu_hook *hook=nullptr)
 

Detailed Description

The dejavu solver.

Contains the high-level strategy of the dejavu solver, controlling the interactions between different modules of the solver.

Definition at line 257 of file dejavu.h.

Member Function Documentation

◆ automorphisms() [1/4]

void dejavu::solver::automorphisms ( sgraph g,
int *  colmap = nullptr,
dejavu_hook hook = nullptr 
)
inline

Computes automorphisms, accepts an sgraph and integer array for vertex colors.

Definition at line 432 of file dejavu.h.

◆ automorphisms() [2/4]

void dejavu::solver::automorphisms ( static_graph g,
dejavu_hook hook = nullptr 
)
inline

Wrapper for automorphisms. Compute the automorphisms of the graph g. Automorphisms are returned using the function pointer hook.

Parameters
gThe graph.
hookThe hook used for returning automorphisms. A null pointer is admissible if this is not needed.
See also
A description of the graph format can be found in graph.

Definition at line 410 of file dejavu.h.

◆ automorphisms() [3/4]

void dejavu::solver::automorphisms ( static_graph g,
dejavu_hook  hook 
)
inline

Wrapper for automorphisms accepting a hook by value.

Definition at line 417 of file dejavu.h.

◆ automorphisms() [4/4]

void dejavu::solver::automorphisms ( static_graph g,
hooks::hook_interface hook 
)
inline

Wrapper for automorphisms accepting a hook_interface object instead of a hook function.

Definition at line 425 of file dejavu.h.

◆ get_automorphism_group_size()

dej_nodiscard big_number dejavu::solver::get_automorphism_group_size ( ) const
inline

How large was the automorphism group computed?

Returns
the automorphism group size

Definition at line 389 of file dejavu.h.

◆ get_deterministic_termination()

dej_nodiscard bool dejavu::solver::get_deterministic_termination ( ) const
inline

Did the solver terminate deterministically, i.e., is the automorphism group guaranteed to be complete?

Returns
whether the solver terminated without potential error

Definition at line 397 of file dejavu.h.

◆ get_error_bound()

int dejavu::solver::get_error_bound ( ) const
inline

Assuming uniform random numbers, error probability is below 1/2^error_bound, default value is 10. Thus, the default value misses a generator with probabiltiy at most 1/2^10 < 0.098%.

Returns
the currently configured error bound

Definition at line 298 of file dejavu.h.

◆ randomize_seed()

void dejavu::solver::randomize_seed ( )
inline

Use 'true random' number generation to set the seed.

Definition at line 371 of file dejavu.h.

◆ set_decompose()

void dejavu::solver::set_decompose ( bool  use_decompose = true)
inline

Whether to use non-uniform component decomposition (default is true).

Parameters
use_decompose(=true) whether to use decomposition

Definition at line 363 of file dejavu.h.

◆ set_disallow_alteration()

void dejavu::solver::set_disallow_alteration ( bool  may_alter_graph = false)
inline

Prevent the solver from changing the provided graph.

Parameters
may_alter_graphwhether the solver is allowed to alter the graph

Definition at line 354 of file dejavu.h.

◆ set_error_bound()

void dejavu::solver::set_error_bound ( int  error_bound = 10)
inline

Assuming uniform random numbers, error probability is below 1/2^error_bound, default value is 10. Thus, the default value misses a generator with probabiltiy at most 1/2^10 < 0.098% (assuming uniform random numbers).

Parameters
error_boundthe new error bound

Definition at line 288 of file dejavu.h.

◆ set_prefer_dfs()

void dejavu::solver::set_prefer_dfs ( bool  prefer_dfs = true)
inline

Whether to try and use as much depth-first search as possible (potentially changes to structure of the found generators to a more desirable one).

Parameters
prefer_dfs(=true) whether to prefer depth-first search

Definition at line 318 of file dejavu.h.

◆ set_print()

void dejavu::solver::set_print ( bool  print = true)
inline

Whether to print progress of the solver.

Parameters
print(=true) whether to print

Definition at line 381 of file dejavu.h.

◆ set_pseudo_random()

void dejavu::solver::set_pseudo_random ( bool  use_pseudo_random = true)
inline

Whether to use pseudo random number generation or random device as provided by the operating system (default is pseudo random).

Parameters
use_pseudo_random(=true) whether to use pseudo random number generation

Definition at line 328 of file dejavu.h.

◆ set_seed()

void dejavu::solver::set_seed ( int  seed = 0)
inline

Seed to use for pseudo random number generation.

Parameters
seedthe seed

Definition at line 336 of file dejavu.h.

◆ set_strong_certification()

void dejavu::solver::set_strong_certification ( bool  use_strong_certification = true)
inline

Use strong certification.

Parameters
use_strong_certificationwhether to use strong certification

Definition at line 345 of file dejavu.h.

◆ set_true_random()

void dejavu::solver::set_true_random ( bool  use_true_random = true)
inline

Whether to use random device as provided by the operating system (AKA 'true random') or pseudo random (default is pseudo random).

Parameters
use_true_random(=true) whether to use true random number generation

Definition at line 308 of file dejavu.h.


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