build_dejavu_graph.cpp
Go to the documentation of this file.
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
113 SCIP_Bool determinesize, /**< whether only the effect of grouping on the graph shall be checked */
314 /* loop through all edges of the symmetry detection graph and either get degrees of nodes or add edges */
417 /* if a new first node has been found, group the edges of the previous first node; ignoring the last group */
420 SCIP_CALL( addOrDetermineEffectOfGroupedEdges(scip, G, determinesize, &internodeid, degrees, maxdegrees,
436 SCIP_CALL( addOrDetermineEffectOfGroupedEdges(scip, G, determinesize, &internodeid, degrees, maxdegrees,
437 nnodes, nedges, firstnodeidx, &groupseconds[firstidx], &groupcolors[firstidx], ngroupedges - firstidx,
500 int* nnodesfromG1, /**< pointer to store number of nodes in dejavu graph arising from G1 (or NULL) */
624 /* collect information or generate graphs, we shift the node indices of the second graph when adding them to G */
670 /* add nodes for remaining nodes of graph, ensure that colors do not conflict with variable colors */
679 /* loop through all edges of the symmetry detection graph and either get degrees of nodes or add edges */
781 /* if a new first node has been found, group the edges of the previous first node; ignoring the last group */
784 SCIP_CALL( addOrDetermineEffectOfGroupedEdges(scip, G, determinesize, &internodeid, degrees, maxdegrees,
801 SCIP_CALL( addOrDetermineEffectOfGroupedEdges(scip, G, determinesize, &internodeid, degrees, maxdegrees,
802 nnodes, nedges, firstnodeidx, &groupseconds[firstidx], &groupcolors[firstidx], ngroupedges - firstidx,
870 SCIP_CALL( createOrDetermineSizeGraph(scip, graph, TRUE, NULL, &nnodes, &nedges, °rees, &maxdegrees, 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
static SCIP_RETCODE addOrDetermineEffectOfGroupedEdges(SCIP *scip, dejavu::static_graph *G, SCIP_Bool determinesize, int *internodeid, int **degrees, int *maxdegrees, int *nnodes, int *nedges, int commonnodeidx, int *neighbors, int *colors, int nneighbors, int *naddednodes, int *naddededges)
Definition: build_dejavu_graph.cpp:110
static SCIP_Bool isEdgeGroupable(SYM_GRAPH *graph, int edgeidx, SCIP_Bool groupbycons)
Definition: build_dejavu_graph.cpp:49
static SCIP_RETCODE createOrDetermineSizeGraphCheck(SCIP *scip, SYM_GRAPH *graph1, SYM_GRAPH *graph2, SCIP_Bool determinesize, dejavu::static_graph *G, int *nnodes, int *nedges, int **degrees, int *maxdegrees, int *nnodesfromG1, SCIP_Bool *success)
Definition: build_dejavu_graph.cpp:490
static SCIP_RETCODE createOrDetermineSizeGraph(SCIP *scip, SYM_GRAPH *graph, SCIP_Bool determinesize, dejavu::static_graph *G, int *nnodes, int *nedges, int **degrees, int *maxdegrees, SCIP_Bool *success)
Definition: build_dejavu_graph.cpp:222
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
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
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
Definition: scip_message.c:225
#define SCIPensureBlockMemoryArray(scip, ptr, arraysizeptr, minsize)
Definition: scip_mem.h:107
#define SCIPallocClearBufferArray(scip, ptr, num)
Definition: scip_mem.h:126
void SCIPsortIntInt(int *intarray1, int *intarray2, int len)
void SCIPsortIntIntInt(int *intarray1, int *intarray2, int *intarray3, int len)
SYM_NODETYPE SCIPgetSymgraphNodeType(SYM_GRAPH *graph, int nodeidx)
Definition: symmetry_graph.c:1693
int SCIPgetSymgraphEdgeFirst(SYM_GRAPH *graph, int edgeidx)
Definition: symmetry_graph.c:1647
SCIP_Bool SCIPhasGraphUniqueEdgetype(SYM_GRAPH *graph)
Definition: symmetry_graph.c:1772
int SCIPgetSymgraphVarnodeColor(SYM_GRAPH *graph, int nodeidx)
Definition: symmetry_graph.c:1671
SYM_SYMTYPE SCIPgetSymgraphSymtype(SYM_GRAPH *graph)
Definition: symmetry_graph.c:1587
int SCIPgetSymgraphEdgeSecond(SYM_GRAPH *graph, int edgeidx)
Definition: symmetry_graph.c:1659
int SCIPgetSymgraphNConsnodes(SYM_GRAPH *graph)
Definition: symmetry_graph.c:1617
SCIP_Bool SCIPisSymgraphEdgeColored(SYM_GRAPH *graph, int edgeidx)
Definition: symmetry_graph.c:1731
int SCIPgetSymgraphNodeColor(SYM_GRAPH *graph, int nodeidx)
Definition: symmetry_graph.c:1708
int SCIPgetSymgraphEdgeColor(SYM_GRAPH *graph, int edgeidx)
Definition: symmetry_graph.c:1746
Definition: multiprecision.hpp:66
public methods for memory management
Definition: struct_symmetry.h:46
Definition: struct_scip.h:72
methods for dealing with symmetry detection graphs