compute_symmetry_sassy_bliss.cpp
Go to the documentation of this file.
30/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
143 if ( SCIPreallocBlockMemoryArray(data->scip, &data->perms, data->nmaxperms, newsize) != SCIP_OKAY )
172 return "Computing Graph Automorphisms by T. Junttila and P. Kaski (users.aalto.fi/~tjunttil/bliss)";
252 *log10groupsize = (SCIP_Real) log10l(grp_sz.mantissa * powl(10.0, (SCIP_Real) grp_sz.exponent));
288 /* lambda function to have access to data and terminate the search if maxgenerators are reached */
290 return (maxgenerators != 0 && data.nperms >= maxgenerators); /* check the number of generators that we have created so far */
301 /* Older bliss versions do not allow to terminate with a limit on the number of generators unless patched. */
303 /* If patch is present, do not use a node limit, but set generator limit. This approach is not very accurate, since
304 * it limits the generators considered in bliss and not the ones that we generate (the ones that work on the variable
318 *log10groupsize = (SCIP_Real) log10l(stats.get_group_size_approx() * grp_sz.mantissa * powl(10.0, (SCIP_Real) grp_sz.exponent));
349 int* nmaxperms, /**< pointer to store maximal number of permutations (needed for freeing storage) */
384 SCIP_CALL( computeAutomorphisms(scip, SCIPgetSymgraphSymtype(graph), &sassygraph, SCIPgetSymgraphNVars(graph),
410 SCIP_CALL( SYMbuildDejavuGraphCheck(scip, &sassygraph, G1, G2, &nnodes, &nnodesfromG1, &success) );
SCIP_RETCODE SYMbuildDejavuGraphCheck(SCIP *scip, dejavu::static_graph *dejavugraph, SYM_GRAPH *G1, SYM_GRAPH *G2, int *nnodes, int *nnodesfromG1, SCIP_Bool *success)
Definition: build_dejavu_graph.cpp:894
SCIP_RETCODE SYMbuildDejavuGraph(SCIP *scip, dejavu::static_graph *dejavugraph, SYM_GRAPH *graph, SCIP_Bool *success)
Definition: build_dejavu_graph.cpp:851
methods to build dejavu graph for symmetry detection
interface for symmetry computations
SCIP_Bool SYMcheckGraphsAreIdentical(SCIP *scip, SYM_SYMTYPE symtype, SYM_GRAPH *G1, SYM_GRAPH *G2)
Definition: compute_symmetry_sassy_bliss.cpp:391
const char * SYMsymmetryGetName(void)
Definition: compute_symmetry_sassy_bliss.cpp:160
const char * SYMsymmetryGetAddName(void)
Definition: compute_symmetry_sassy_bliss.cpp:179
SCIP_RETCODE SYMcomputeSymmetryGenerators(SCIP *scip, int maxgenerators, SYM_GRAPH *graph, int *nperms, int *nmaxperms, int ***perms, SCIP_Real *log10groupsize, SCIP_Real *symcodetime)
Definition: compute_symmetry_sassy_bliss.cpp:344
SCIP_Bool SYMcanComputeSymmetry(void)
Definition: compute_symmetry_sassy_bliss.cpp:154
const char * SYMsymmetryGetDesc(void)
Definition: compute_symmetry_sassy_bliss.cpp:170
static void sassyhook(void *user_param, int n, const int *aut, int nsupp, const int *suppa)
Definition: compute_symmetry_sassy_bliss.cpp:70
const char * SYMsymmetryGetAddDesc(void)
Definition: compute_symmetry_sassy_bliss.cpp:185
static SCIP_RETCODE computeAutomorphisms(SCIP *scip, SYM_SYMTYPE symtype, dejavu::static_graph *G, int nsymvars, int maxgenerators, int ***perms, int *nperms, int *nmaxperms, SCIP_Real *log10groupsize, SCIP_Bool restricttovars, SCIP_Real *symcodetime)
Definition: compute_symmetry_sassy_bliss.cpp:192
Constraint handler for linear constraints in their most general form, .
constraint handler for nonlinear constraints specified by algebraic expressions
private functions to work with algebraic expressions
power and signed power expression handlers
sum expression handler
variable expression handler
#define SCIPreallocBlockMemoryArray(scip, ptr, oldnum, newnum)
Definition: scip_mem.h:99
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
Definition: scip_mem.h:111
SYM_SYMTYPE SCIPgetSymgraphSymtype(SYM_GRAPH *graph)
Definition: symmetry_graph.c:1587
Definition: multiprecision.hpp:66
public methods for memory management
Definition: compute_symmetry_dejavu.cpp:54
Definition: struct_symmetry.h:46
Definition: struct_scip.h:72
methods for dealing with symmetry detection graphs