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().