Detailed Description
data to encode a symmetry detection graph
Definition at line 45 of file struct_symmetry.h.
#include <struct_symmetry.h>
Data Fields | |
SYM_SYMTYPE | symtype |
SCIP_Bool | islocked |
SCIP_Real | infinity |
int | nnodes |
int | maxnnodes |
int | nopnodes |
int | maxnopnodes |
int | nvalnodes |
int | maxnvalnodes |
int | nconsnodes |
int | maxnconsnodes |
int | nvarcolors |
SYM_NODETYPE * | nodetypes |
int * | nodeinfopos |
int * | consnodeperm |
int * | ops |
SCIP_Real * | vals |
SCIP_CONS ** | conss |
SCIP_Real * | lhs |
SCIP_Real * | rhs |
int | nedges |
int | maxnedges |
int * | edgefirst |
int * | edgesecond |
SCIP_Real * | edgevals |
SCIP_VAR ** | symvars |
int | nsymvars |
SCIP_Bool * | isfixedvar |
int * | varcolors |
int * | opcolors |
int * | valcolors |
int * | conscolors |
int * | edgecolors |
SCIP_Bool | uniqueedgetype |
Field Documentation
◆ symtype
SYM_SYMTYPE SYM_Graph::symtype |
type of symmetries encoded in graph
Definition at line 48 of file struct_symmetry.h.
Referenced by SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), SCIPgetSymgraphNegatedVarnodeidx(), SCIPgetSymgraphSymtype(), SCIPgetSymgraphVarnodeColor(), and SCIPgetSymgraphVarnodeidx().
◆ islocked
SCIP_Bool SYM_Graph::islocked |
whether graph is locked, i.e., cannot be modified anymore (computing colors will lock the graph to avoid inconsistencies)
Definition at line 49 of file struct_symmetry.h.
Referenced by SCIPaddSymgraphConsnode(), SCIPaddSymgraphEdge(), SCIPaddSymgraphOpnode(), SCIPaddSymgraphValnode(), SCIPcomputeSymgraphColors(), SCIPcreateSymgraphConsnodeperm(), SCIPextendPermsymDetectionGraphLinear(), SCIPfreeSymgraphConsnodeperm(), SCIPgetSymgraphConsnodeperm(), SCIPgetSymgraphNodeColor(), SCIPgetSymgraphVarnodeColor(), and SCIPisSymgraphEdgeColored().
◆ infinity
SCIP_Real SYM_Graph::infinity |
values as least as large as this are regarded as infinite
Definition at line 51 of file struct_symmetry.h.
Referenced by SCIP_DECL_SORTINDCOMP(), and SCIPaddSymgraphConsnode().
◆ nnodes
int SYM_Graph::nnodes |
number of nodes in graph
Definition at line 54 of file struct_symmetry.h.
Referenced by compareSymgraphs(), ensureNodeArraysSize(), SCIPaddSymgraphConsnode(), SCIPaddSymgraphOpnode(), SCIPaddSymgraphValnode(), SCIPcopySymgraph(), SCIPgetSymgraphNNodes(), SYMbuildSassyGraphCheck(), and SYMcheckGraphsAreIdentical().
◆ maxnnodes
int SYM_Graph::maxnnodes |
maximum number of entries in node-based arrays
Definition at line 55 of file struct_symmetry.h.
Referenced by ensureNodeArraysSize().
◆ nopnodes
int SYM_Graph::nopnodes |
number of operator nodes in graph
Definition at line 56 of file struct_symmetry.h.
Referenced by compareSymgraphs(), SCIPaddSymgraphOpnode(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), SYMbuildSassyGraphCheck(), and SYMcheckGraphsAreIdentical().
◆ maxnopnodes
int SYM_Graph::maxnopnodes |
maximum number of entries in operator-based arrays
Definition at line 57 of file struct_symmetry.h.
Referenced by SCIPaddSymgraphOpnode().
◆ nvalnodes
int SYM_Graph::nvalnodes |
number of value nodes in graph
Definition at line 58 of file struct_symmetry.h.
Referenced by compareSymgraphs(), SCIPaddSymgraphValnode(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), SYMbuildSassyGraphCheck(), and SYMcheckGraphsAreIdentical().
◆ maxnvalnodes
int SYM_Graph::maxnvalnodes |
maximum number of entries in value-based arrays
Definition at line 59 of file struct_symmetry.h.
Referenced by SCIPaddSymgraphValnode().
◆ nconsnodes
int SYM_Graph::nconsnodes |
number of constraint nodes
Definition at line 60 of file struct_symmetry.h.
Referenced by compareSymgraphs(), SCIPaddSymgraphConsnode(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), SCIPcreateSymgraphConsnodeperm(), SCIPfreeSymgraphConsnodeperm(), SCIPgetSymgraphNConsnodes(), SYMbuildSassyGraphCheck(), and SYMcheckGraphsAreIdentical().
◆ maxnconsnodes
int SYM_Graph::maxnconsnodes |
maximum number of constraint-based arrays
Definition at line 61 of file struct_symmetry.h.
Referenced by SCIPaddSymgraphConsnode().
◆ nvarcolors
int SYM_Graph::nvarcolors |
number of variable colors
Definition at line 62 of file struct_symmetry.h.
Referenced by SCIPgetSymgraphNVarcolors().
◆ nodetypes
SYM_NODETYPE* SYM_Graph::nodetypes |
array storing each node's type
Definition at line 65 of file struct_symmetry.h.
Referenced by ensureNodeArraysSize(), SCIPaddSymgraphConsnode(), SCIPaddSymgraphOpnode(), SCIPaddSymgraphValnode(), SCIPcopySymgraph(), SCIPgetSymgraphNodeColor(), SCIPgetSymgraphNodeType(), SCIPupdateSymgraphLhs(), and SCIPupdateSymgraphRhs().
◆ nodeinfopos
int* SYM_Graph::nodeinfopos |
array assigning each node the position in the corresponding array containing its information (operator, variable, or value)
Definition at line 66 of file struct_symmetry.h.
Referenced by ensureNodeArraysSize(), SCIPaddSymgraphConsnode(), SCIPaddSymgraphOpnode(), SCIPaddSymgraphValnode(), SCIPcopySymgraph(), SCIPgetSymgraphNodeColor(), SCIPupdateSymgraphLhs(), and SCIPupdateSymgraphRhs().
◆ consnodeperm
int* SYM_Graph::consnodeperm |
array to hold permutation to sort constraint nodes (graph needs to be locked to avoid inconsistencies)
Definition at line 68 of file struct_symmetry.h.
Referenced by compareSymgraphs(), SCIPcreateSymgraphConsnodeperm(), SCIPfreeSymgraphConsnodeperm(), and SCIPgetSymgraphConsnodeperm().
◆ ops
int* SYM_Graph::ops |
operators corresponding to nodes in graph
Definition at line 72 of file struct_symmetry.h.
Referenced by SCIPaddSymgraphOpnode(), SCIPcomputeSymgraphColors(), and SCIPcopySymgraph().
◆ vals
SCIP_Real* SYM_Graph::vals |
values corresponding to nodes in graph
Definition at line 73 of file struct_symmetry.h.
Referenced by SCIPaddSymgraphValnode(), SCIPcomputeSymgraphColors(), and SCIPcopySymgraph().
◆ conss
SCIP_CONS** SYM_Graph::conss |
constraints corresponding to cons nodes
Definition at line 74 of file struct_symmetry.h.
Referenced by compareConsnodes(), compareSymgraphs(), SCIPaddSymgraphConsnode(), and SCIPcopySymgraph().
◆ lhs
SCIP_Real* SYM_Graph::lhs |
array of left-hand sides for cons nodes
Definition at line 75 of file struct_symmetry.h.
Referenced by compareConsnodes(), compareSymgraphs(), SCIPaddSymgraphConsnode(), SCIPcopySymgraph(), and SCIPupdateSymgraphLhs().
◆ rhs
SCIP_Real* SYM_Graph::rhs |
array of right-hand sides for cons nodes
Definition at line 76 of file struct_symmetry.h.
Referenced by compareConsnodes(), compareSymgraphs(), SCIPaddSymgraphConsnode(), SCIPcopySymgraph(), and SCIPupdateSymgraphRhs().
◆ nedges
int SYM_Graph::nedges |
number of edges in graph
Definition at line 79 of file struct_symmetry.h.
Referenced by compareSymgraphs(), ensureEdgeArraysSize(), SCIPaddSymgraphEdge(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), SCIPgetSymgraphNEdges(), SYMbuildSassyGraphCheck(), and SYMcheckGraphsAreIdentical().
◆ maxnedges
int SYM_Graph::maxnedges |
maximum number of entries in edge-based arrays
Definition at line 80 of file struct_symmetry.h.
Referenced by ensureEdgeArraysSize().
◆ edgefirst
int* SYM_Graph::edgefirst |
array of first nodes of edges
Definition at line 83 of file struct_symmetry.h.
Referenced by ensureEdgeArraysSize(), SCIPaddSymgraphEdge(), SCIPgetSymgraphEdgeFirst(), and SYMcheckGraphsAreIdentical().
◆ edgesecond
int* SYM_Graph::edgesecond |
array of second nodes of edges
Definition at line 84 of file struct_symmetry.h.
Referenced by ensureEdgeArraysSize(), SCIPaddSymgraphEdge(), SCIPgetSymgraphEdgeSecond(), and SYMcheckGraphsAreIdentical().
◆ edgevals
SCIP_Real* SYM_Graph::edgevals |
array assigning each edge a value (SCIPinfinity if unassigned)
Definition at line 85 of file struct_symmetry.h.
Referenced by ensureEdgeArraysSize(), SCIP_DECL_SORTINDCOMP(), SCIPaddSymgraphEdge(), and SCIPcopySymgraph().
◆ symvars
SCIP_VAR** SYM_Graph::symvars |
variables on which symmetries act
Definition at line 88 of file struct_symmetry.h.
Referenced by SCIP_DECL_SORTINDCOMP(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), and SCIPgetSymgraphVars().
◆ nsymvars
int SYM_Graph::nsymvars |
number of variables in symvars
Definition at line 89 of file struct_symmetry.h.
Referenced by SCIP_DECL_SORTINDCOMP(), SCIPaddSymgraphVarAggregation(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), SCIPextendPermsymDetectionGraphLinear(), SCIPgetSymgraphNegatedVarnodeidx(), SCIPgetSymgraphNVarcolors(), SCIPgetSymgraphNVars(), and SYMcheckGraphsAreIdentical().
◆ isfixedvar
SCIP_Bool* SYM_Graph::isfixedvar |
whether a variable needs to be fixed
Definition at line 90 of file struct_symmetry.h.
Referenced by SCIP_DECL_SORTINDCOMP(), SCIPcomputeSymgraphColors(), and SCIPfixSymgraphVarnode().
◆ varcolors
int* SYM_Graph::varcolors |
variable colors for symmetry detection
Definition at line 93 of file struct_symmetry.h.
Referenced by SCIPcomputeSymgraphColors(), and SCIPgetSymgraphVarnodeColor().
◆ opcolors
int* SYM_Graph::opcolors |
operator colors for symmetry detection
Definition at line 94 of file struct_symmetry.h.
Referenced by SCIPcomputeSymgraphColors(), and SCIPgetSymgraphNodeColor().
◆ valcolors
int* SYM_Graph::valcolors |
value colors for symmetry detection
Definition at line 95 of file struct_symmetry.h.
Referenced by SCIPcomputeSymgraphColors(), and SCIPgetSymgraphNodeColor().
◆ conscolors
int* SYM_Graph::conscolors |
constraint colors for symmetry detection
Definition at line 96 of file struct_symmetry.h.
Referenced by SCIPcomputeSymgraphColors(), and SCIPgetSymgraphNodeColor().
◆ edgecolors
int* SYM_Graph::edgecolors |
edge colors used for symmetry detection (-1 uncolored)
Definition at line 97 of file struct_symmetry.h.
Referenced by SCIPcomputeSymgraphColors(), SCIPgetSymgraphEdgeColor(), and SCIPisSymgraphEdgeColored().
◆ uniqueedgetype
SCIP_Bool SYM_Graph::uniqueedgetype |
whether all edges are equivalent
Definition at line 98 of file struct_symmetry.h.
Referenced by SCIPhasGraphUniqueEdgetype().