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*/
172 if ( SCIPreallocBlockMemoryArray(data->scip, &data->perms, data->nmaxperms, newsize) != SCIP_OKAY )
201 return "Computing Graph Automorphisms by T. Junttila and P. Kaski (users.aalto.fi/~tjunttil/bliss)";
316 /* lambda function to have access to data and terminate the search if maxgenerators are reached */
318 return (maxgenerators != 0 && data.nperms >= maxgenerators); /* check the number of generators that we have created so far */
329 /* Older bliss versions do not allow to terminate with a limit on the number of generators unless patched. */
331 /* If patch is present, do not use a node limit, but set generator limit. This approach is not very accurate, since
332 * it limits the generators considered in bliss and not the ones that we generate (the ones that work on the variable
375 int* nmaxperms, /**< pointer to store maximal number of permutations (needed for freeing storage) */
405 SCIP_CALL( computeAutomorphisms(scip, SCIPgetSymgraphSymtype(graph), &sassygraph, SCIPgetSymgraphNVars(graph),
431 SCIP_CALL( SYMbuildSassyGraphCheck(scip, &sassygraph, G1, G2, &nnodes, &nnodesfromG1, &success) );
SCIP_RETCODE SYMbuildSassyGraph(SCIP *scip, sassy::static_graph *sassygraph, SYM_GRAPH *graph, SCIP_Bool *success)
Definition: build_sassy_graph.cpp:849
SCIP_RETCODE SYMbuildSassyGraphCheck(SCIP *scip, sassy::static_graph *sassygraph, SYM_GRAPH *G1, SYM_GRAPH *G2, int *nnodes, int *nnodesfromG1, SCIP_Bool *success)
Definition: build_sassy_graph.cpp:892
methods to build sassy 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:412
const char * SYMsymmetryGetName(void)
Definition: compute_symmetry_sassy_bliss.cpp:189
static SCIP_RETCODE computeAutomorphisms(SCIP *scip, SYM_SYMTYPE symtype, sassy::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:221
const char * SYMsymmetryGetAddName(void)
Definition: compute_symmetry_sassy_bliss.cpp:208
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:370
SCIP_Bool SYMcanComputeSymmetry(void)
Definition: compute_symmetry_sassy_bliss.cpp:183
const char * SYMsymmetryGetDesc(void)
Definition: compute_symmetry_sassy_bliss.cpp:199
static void sassyhook(void *user_param, int n, const int *aut, int nsupp, const int *suppa)
Definition: compute_symmetry_sassy_bliss.cpp:99
const char * SYMsymmetryGetAddDesc(void)
Definition: compute_symmetry_sassy_bliss.cpp:214
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:1428
Definition: objbenders.h:44
public methods for memory management
Definition: compute_symmetry_sassy_bliss.cpp:83
SCIP_Bool restricttovars
Definition: compute_symmetry_sassy_bliss.cpp:91
Definition: struct_symmetry.h:46
Definition: struct_scip.h:70
methods for dealing with symmetry detection graphs