Detailed Description
includes graph ancestor methods for Steiner problems
Graph ancestor methods for Steiner problems. Usually used to reconstruct a graph after reductions
Definition in file graph_history.c.
Go to the source code of this file.
Data Structures | |
struct | fixed_graph_components |
struct | blocked_pseudo_ancestor |
struct | pseudo_ancestors |
Typedefs | |
typedef struct blocked_pseudo_ancestor | BLOCKANS |
Functions | |
static int | getNextPow2 (int number) |
static SCIP_Bool | ancestorsMarkConflict (const GRAPH *graph, int edge, int *ancestormark) |
static void | ancestorsUnmarkConflict (const GRAPH *graph, int edge, int *ancestormark) |
static SCIP_RETCODE | blockedAncestors_init (int nblocks, BLOCKANS **blockedans) |
static void | blockedAncestors_freeBlock (SCIP *scip, int block_id, BLOCKANS *blockedans) |
static void | blockedAncestors_free (SCIP *scip, BLOCKANS **blockedans) |
static void | blockedAncestors_hash (const BLOCKANS *blockedans, int block_id, int *hasharr) |
static void | blockedAncestors_unhashPartial (const BLOCKANS *blockedans, int block_id, int nAncestorsToClean, int *hasharr) |
static void | blockedAncestors_hashDirty (const BLOCKANS *blockedans, int block_id, SCIP_Bool revertIfConflict, SCIP_Bool *conflict, int *hasharr) |
static void | blockedAncestors_unhashDirty (const BLOCKANS *blockedans, int block_id, int *hasharr) |
static SCIP_Bool | blockedAncestors_hashIsHit (const BLOCKANS *blockedans, int ancestor, const int *hasharr) |
static SCIP_Bool | blockedAncestors_hashIsHitBlock (const BLOCKANS *blockedans, int block_id, const int *hasharr) |
static SCIP_RETCODE | blockedAncestors_realloc (SCIP *scip, int block_id, int capacity_new, BLOCKANS *blockedans) |
static SCIP_Bool | blockedAncestors_blockIsValid (int block_id, const BLOCKANS *blockedans, int *hasharr) |
static SCIP_RETCODE | blockedAncestors_appendArray (SCIP *scip, int block_target, const int *ancestors_source, int size_source, SCIP_Bool breakOnConflict, int hasharr_size, BLOCKANS *blockedans_target, SCIP_Bool *conflict) |
static SCIP_RETCODE | blockedAncestors_appendCopy (SCIP *scip, int block_target, const BLOCKANS *blockedans_source, int block_source, SCIP_Bool breakOnConflict, int hasharr_size, BLOCKANS *blockedans_target, SCIP_Bool *conflict) |
static SCIP_RETCODE | blockedAncestors_addAncestor (SCIP *scip, int block_target, int ancestor, int hasharr_size, BLOCKANS *blockedans) |
static SCIP_Bool | blockedAncestors_isValid (SCIP *scip, int hasharr_size, const BLOCKANS *blockedans) |
static SCIP_Bool | fixedPseudoAncestorsAreValid (SCIP *scip, const GRAPH *g) |
SCIP_RETCODE | graph_singletonAncestors_init (SCIP *scip, const GRAPH *g, int edge, SINGLETONANS *singletonans) |
void | graph_singletonAncestors_freeMembers (SCIP *scip, SINGLETONANS *singletonans) |
SCIP_Bool | graph_valid_ancestors (SCIP *scip, const GRAPH *g) |
void | graph_pseudoAncestors_hashEdge (const PSEUDOANS *pseudoancestors, int edge, int *hasharr) |
void | graph_pseudoAncestors_hashNode (const PSEUDOANS *pseudoancestors, int node, int *hasharr) |
void | graph_pseudoAncestors_unhashEdge (const PSEUDOANS *pseudoancestors, int edge, int *hasharr) |
void | graph_pseudoAncestors_unhashNode (const PSEUDOANS *pseudoancestors, int node, int *hasharr) |
void | graph_pseudoAncestors_hashEdgeDirty (const PSEUDOANS *pseudoancestors, int edge, SCIP_Bool revertIfConflict, SCIP_Bool *conflict, int *hasharr) |
void | graph_pseudoAncestors_hashNodeDirty (const PSEUDOANS *pseudoancestors, int node, SCIP_Bool revertIfConflict, SCIP_Bool *conflict, int *hasharr) |
void | graph_pseudoAncestors_unhashEdgeDirty (const PSEUDOANS *pseudoancestors, int edge, int *hasharr) |
void | graph_pseudoAncestors_unhashNodeDirty (const PSEUDOANS *pseudoancestors, int node, int *hasharr) |
SCIP_Bool | graph_pseudoAncestors_edgeIsHashed (const PSEUDOANS *pseudoancestors, int edge, const int *hasharr) |
SCIP_Bool | graph_pseudoAncestors_nodeIsHashed (const PSEUDOANS *pseudoancestors, int node, const int *hasharr) |
SCIP_RETCODE | graph_initAncestors (SCIP *scip, GRAPH *g) |
SCIP_Bool | graph_pseudoAncestors_edgesInConflict (SCIP *scip, const GRAPH *g, const int *edges, int nedges) |
SCIP_RETCODE | graph_initPseudoAncestors (SCIP *scip, GRAPH *g) |
SCIP_RETCODE | graph_initPseudoAncestorsSized (SCIP *scip, int nedges, GRAPH *g) |
void | graph_freePseudoAncestors (SCIP *scip, GRAPH *g) |
void | graph_edge_delPseudoAncestors (SCIP *scip, int edge_free, GRAPH *g) |
void | graph_knot_delPseudoAncestors (SCIP *scip, int node_free, GRAPH *g) |
int | graph_edge_nPseudoAncestors (const GRAPH *g, int edge) |
int | graph_knot_nPseudoAncestors (const GRAPH *g, int node) |
const int * | graph_edge_getPseudoAncestors (const GRAPH *g, int edge) |
IDX * | graph_edge_getAncestors (const GRAPH *g, int edge) |
void | graph_knot_printPseudoAncestors (const GRAPH *g, int node) |
void | graph_edge_printPseudoAncestors (const GRAPH *g, int edge) |
const int * | graph_knot_getPseudoAncestors (const GRAPH *g, int node) |
int | graph_getNpseudoAncestors (const GRAPH *g) |
void | graph_addPseudoAncestor (GRAPH *g, int *pseudoancestor) |
void | graph_addPseudoAncestors (int nadd, GRAPH *g) |
int | graph_pseudoAncestorsGetHashArraySize (const PSEUDOANS *pseudoancestors) |
SCIP_RETCODE | graph_pseudoAncestors_appendCopyEdge (SCIP *scip, int edge_target, int edge_source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendCopyNode (SCIP *scip, int node_target, int node_source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendCopyNodeToEdge (SCIP *scip, int edge_target, int node_source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendCopyEdgeToNode (SCIP *scip, int node_target, int edge_source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendCopySingToEdge (SCIP *scip, int edge_target, const SINGLETONANS *source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendCopyArrayToEdge (SCIP *scip, int edge_target, const int *ancestors, int nancestors, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendMoveEdge (SCIP *scip, int edge_target, int edge_source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_appendMoveNode (SCIP *scip, int node_target, int node_source, SCIP_Bool revertIfConflict, GRAPH *g, SCIP_Bool *conflict) |
SCIP_RETCODE | graph_pseudoAncestors_addToEdge (SCIP *scip, int edge_target, int ancestor, GRAPH *g) |
SCIP_RETCODE | graph_pseudoAncestors_addToNode (SCIP *scip, int node_target, int ancestor, GRAPH *g) |
SCIP_Bool | graph_valid_pseudoAncestors (SCIP *scip, const GRAPH *g) |
SCIP_RETCODE | graph_init_fixed (SCIP *scip, GRAPH *g) |
void | graph_free_fixed (SCIP *scip, GRAPH *g) |
void | graph_free_fixedEdgesOnly (SCIP *scip, GRAPH *g) |
SCIP_RETCODE | graph_fixed_add (SCIP *scip, IDX *edges, const int *pseudonodes, int npseudonodes, GRAPH *g) |
SCIP_RETCODE | graph_fixed_addEdge (SCIP *scip, int edge, GRAPH *g) |
SCIP_RETCODE | graph_fixed_addNodePc (SCIP *scip, int node, GRAPH *g) |
SCIP_RETCODE | graph_fixed_moveNodePc (SCIP *scip, int node, GRAPH *g) |
void | graph_fixed_resetMoved (GRAPH *g) |
SCIP_RETCODE | graph_initContractTracing (SCIP *scip, GRAPH *graph) |
SCIP_Bool | graph_knot_hasContractTrace (int node, const GRAPH *graph) |
int | graph_contractTrace (int node, const GRAPH *graph) |
SCIP_RETCODE | graph_copyFixed (SCIP *scip, GRAPH *g, SCIP_Bool moveFixedEdges, GRAPH *g_copy) |
IDX * | graph_getFixedges (const GRAPH *g) |
const int * | graph_getFixpseudonodes (SCIP *scip, const GRAPH *g) |
int | graph_getNfixpseudonodes (const GRAPH *g) |
Typedef Documentation
◆ BLOCKANS
typedef struct blocked_pseudo_ancestor BLOCKANS |
blocked pseudo ancestors
Function Documentation
◆ getNextPow2()
|
inlinestatic |
get next power of 2 number; assumes number >= 1 and number < UINT_MAX
Definition at line 64 of file graph_history.c.
References SCIPdebugMessage.
Referenced by blockedAncestors_addAncestor(), blockedAncestors_appendArray(), and graph_pseudoAncestorsGetHashArraySize().
◆ ancestorsMarkConflict()
mark ancestors of given edge
- Parameters
-
graph graph data structure edge edge to use ancestormark ancestor mark array
Definition at line 88 of file graph_history.c.
References GRAPH::ancestors, GRAPH::edges, FALSE, MAX, NULL, GRAPH::orgedges, and TRUE.
Referenced by graph_valid_ancestors().
◆ ancestorsUnmarkConflict()
|
static |
unmark ancestors of given edge
- Parameters
-
graph graph data structure edge edge to use ancestormark ancestor mark array
Definition at line 114 of file graph_history.c.
References GRAPH::ancestors, GRAPH::edges, MAX, NULL, and GRAPH::orgedges.
Referenced by graph_valid_ancestors().
◆ blockedAncestors_init()
|
static |
initialize
- Parameters
-
nblocks number of ancestor blocks blockedans blocked pseudo-ancestors
Definition at line 132 of file graph_history.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, and SCIPallocMemoryArray.
Referenced by graph_initPseudoAncestorsSized().
◆ blockedAncestors_freeBlock()
|
inlinestatic |
free
- Parameters
-
scip SCIP data structure block_id id for which to free pseudo ancestors blockedans blocked pseudo-ancestors
Definition at line 168 of file graph_history.c.
References blocked_pseudo_ancestor::blocks, blocked_pseudo_ancestor::capacities, NULL, SCIPfreeBlockMemoryArray, and blocked_pseudo_ancestor::sizes.
Referenced by blockedAncestors_free(), graph_edge_delPseudoAncestors(), and graph_knot_delPseudoAncestors().
◆ blockedAncestors_free()
free
- Parameters
-
scip SCIP data structure blockedans blocked pseudo-ancestors
Definition at line 197 of file graph_history.c.
References blockedAncestors_freeBlock(), blocked_pseudo_ancestor::blocks, blocked_pseudo_ancestor::capacities, blocked_pseudo_ancestor::nblocks, SCIPfreeMemoryArray, and blocked_pseudo_ancestor::sizes.
Referenced by graph_freePseudoAncestors().
◆ blockedAncestors_hash()
|
inlinestatic |
hash ancestors of given entry
- Parameters
-
blockedans blocked pseudo-ancestors block_id entry for which to reallocate hasharr hash array for pseudo ancestors
Definition at line 225 of file graph_history.c.
References a, blocked_pseudo_ancestor::blocks, and blocked_pseudo_ancestor::sizes.
Referenced by blockedAncestors_appendArray(), graph_pseudoAncestors_hashEdge(), and graph_pseudoAncestors_hashNode().
◆ blockedAncestors_unhashPartial()
|
inlinestatic |
unhash nAncestorsToClean many ancestors
- Parameters
-
blockedans blocked pseudo-ancestors block_id entry for which to reallocate nAncestorsToClean number of (first) ancestors to use for clean, or -1 to clean all hasharr hash array for pseudo ancestors
Definition at line 250 of file graph_history.c.
References a, blocked_pseudo_ancestor::blocks, and blocked_pseudo_ancestor::sizes.
Referenced by blockedAncestors_appendArray(), graph_pseudoAncestors_unhashEdge(), and graph_pseudoAncestors_unhashNode().
◆ blockedAncestors_hashDirty()
|
inlinestatic |
hash ancestors of given entry with possible conflicts
- Parameters
-
blockedans blocked pseudo-ancestors block_id entry for which to reallocate revertIfConflict break on conflict? conflict conflict? hasharr hash array for pseudo ancestors
Definition at line 277 of file graph_history.c.
References a, blocked_pseudo_ancestor::blocks, FALSE, blocked_pseudo_ancestor::sizes, and TRUE.
Referenced by blockedAncestors_blockIsValid(), graph_pseudoAncestors_hashEdgeDirty(), and graph_pseudoAncestors_hashNodeDirty().
◆ blockedAncestors_unhashDirty()
|
inlinestatic |
unhash ancestors of given entry with possible conflicts
- Parameters
-
blockedans blocked pseudo-ancestors block_id entry for which to reallocate hasharr hash array for pseudo ancestors
Definition at line 331 of file graph_history.c.
References a, blocked_pseudo_ancestor::blocks, and blocked_pseudo_ancestor::sizes.
Referenced by blockedAncestors_blockIsValid(), graph_pseudoAncestors_unhashEdgeDirty(), and graph_pseudoAncestors_unhashNodeDirty().
◆ blockedAncestors_hashIsHit()
|
inlinestatic |
ancestor already hashed?
- Parameters
-
blockedans blocked pseudo-ancestors ancestor ancestor to check hasharr hash array for pseudo ancestors
Definition at line 357 of file graph_history.c.
Referenced by blockedAncestors_appendArray().
◆ blockedAncestors_hashIsHitBlock()
|
inlinestatic |
any ancestors of given entry are already hashed?
- Parameters
-
blockedans blocked pseudo-ancestors block_id entry for which to check for conflicts hasharr hash array for pseudo ancestors
Definition at line 372 of file graph_history.c.
References a, blocked_pseudo_ancestor::blocks, FALSE, blocked_pseudo_ancestor::sizes, and TRUE.
Referenced by graph_pseudoAncestors_edgeIsHashed(), and graph_pseudoAncestors_nodeIsHashed().
◆ blockedAncestors_realloc()
|
inlinestatic |
reallocate ancestor array of given entry
- Parameters
-
scip SCIP data structure block_id entry for which to reallocate capacity_new the new capacity blockedans blocked pseudo-ancestors
Definition at line 401 of file graph_history.c.
References blocked_pseudo_ancestor::blocks, blocked_pseudo_ancestor::capacities, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPreallocBlockMemoryArray, and blocked_pseudo_ancestor::sizes.
Referenced by blockedAncestors_addAncestor(), and blockedAncestors_appendArray().
◆ blockedAncestors_blockIsValid()
|
inlinestatic |
pseudo ancestors of given block without conflicts?
- Parameters
-
block_id entry for which to reallocate blockedans blocked pseudo-ancestors hasharr clean hash array for pseudo ancestors
Definition at line 438 of file graph_history.c.
References blockedAncestors_hashDirty(), blockedAncestors_unhashDirty(), FALSE, and SCIP_Bool.
Referenced by blockedAncestors_addAncestor(), and blockedAncestors_isValid().
◆ blockedAncestors_appendArray()
|
static |
appends copy of pseudo ancestors of source to target
- Parameters
-
scip SCIP data structure block_target target block ancestors_source ancestors to append size_source number of ancestors to append breakOnConflict break on conflict hasharr_size size for hash array blockedans_target blocked pseudo-ancestors conflict conflict?
Definition at line 458 of file graph_history.c.
References blockedAncestors_hash(), blockedAncestors_hashIsHit(), blockedAncestors_realloc(), blockedAncestors_unhashPartial(), blocked_pseudo_ancestor::blocks, blocked_pseudo_ancestor::capacities, getNextPow2(), SCIP_CALL, SCIP_OKAY, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, blocked_pseudo_ancestor::sizes, and TRUE.
Referenced by blockedAncestors_appendCopy(), graph_pseudoAncestors_appendCopyArrayToEdge(), and graph_pseudoAncestors_appendCopySingToEdge().
◆ blockedAncestors_appendCopy()
|
static |
appends copy of pseudo ancestors of source to target
- Parameters
-
scip SCIP data structure block_target target block blockedans_source blocked pseudo-ancestors block_source source block breakOnConflict break on conflict hasharr_size size of hash array blockedans_target blocked pseudo-ancestors conflict conflict?
Definition at line 531 of file graph_history.c.
References blockedAncestors_appendArray(), blocked_pseudo_ancestor::blocks, FALSE, SCIP_CALL, SCIP_OKAY, and blocked_pseudo_ancestor::sizes.
Referenced by graph_pseudoAncestors_appendCopyEdge(), graph_pseudoAncestors_appendCopyEdgeToNode(), graph_pseudoAncestors_appendCopyNode(), and graph_pseudoAncestors_appendCopyNodeToEdge().
◆ blockedAncestors_addAncestor()
|
static |
adds pseudo ancestor to ancestor list of given block
- Parameters
-
scip SCIP data structure block_target block for which to add pseudo ancestor ancestor (index of) pseudo ancestor hasharr_size size of hash array blockedans blocked pseudo-ancestors
Definition at line 565 of file graph_history.c.
References blockedAncestors_blockIsValid(), blockedAncestors_realloc(), blocked_pseudo_ancestor::blocks, blocked_pseudo_ancestor::capacities, getNextPow2(), SCIP_CALL, SCIP_CALL_ABORT, SCIP_OKAY, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, and blocked_pseudo_ancestor::sizes.
Referenced by graph_pseudoAncestors_addToEdge(), and graph_pseudoAncestors_addToNode().
◆ blockedAncestors_isValid()
|
static |
valid pseudo-ancestors (no conflicts)?
- Parameters
-
scip SCIP data structure hasharr_size size of hash array blockedans blocked pseudo-ancestors
Definition at line 607 of file graph_history.c.
References blockedAncestors_blockIsValid(), blocked_pseudo_ancestor::blocks, blocked_pseudo_ancestor::capacities, FALSE, blocked_pseudo_ancestor::nblocks, NULL, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, blocked_pseudo_ancestor::sizes, and TRUE.
Referenced by graph_valid_pseudoAncestors().
◆ fixedPseudoAncestorsAreValid()
checks
- Parameters
-
scip SCIP data structure g the graph
Definition at line 649 of file graph_history.c.
References FALSE, graph_getFixpseudonodes(), graph_getNfixpseudonodes(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocClearMemoryArray, SCIPerrorMessage, SCIPfreeMemoryArray, and TRUE.
Referenced by graph_fixed_add(), and graph_valid_ancestors().
◆ graph_singletonAncestors_init()
SCIP_RETCODE graph_singletonAncestors_init | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | edge, | ||
SINGLETONANS * | singletonans | ||
) |
initializes singleton edge ancestors
- Parameters
-
scip SCIP data structure g the graph edge edge to initialize from singletonans singleton edge ancestors
Definition at line 684 of file graph_history.c.
References singleton_ancestors_edge::ancestors, GRAPH::ancestors, BMScopyMemoryArray, singleton_ancestors_edge::edge, FALSE, flipedge, graph_edge_getAncestors(), graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_typeIsUndirected(), singleton_ancestors_edge::npseudoancestors, NULL, singleton_ancestors_edge::pseudoancestors, singleton_ancestors_edge::revancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, and SCIPintListNodeAppendCopy().
Referenced by delPseudoDeleteVertex(), delPseudoEdgeDeleteEdge(), graph_knot_contract(), and pcReduceTermDeg2().
◆ graph_singletonAncestors_freeMembers()
void graph_singletonAncestors_freeMembers | ( | SCIP * | scip, |
SINGLETONANS * | singletonans | ||
) |
initializes singleton edge ancestors
- Parameters
-
scip SCIP data structure singletonans singleton edge ancestors
Definition at line 734 of file graph_history.c.
References singleton_ancestors_edge::ancestors, singleton_ancestors_edge::npseudoancestors, singleton_ancestors_edge::pseudoancestors, singleton_ancestors_edge::revancestors, SCIPfreeMemoryArray, and SCIPintListNodeFree().
Referenced by delPseudoDeleteVertex(), delPseudoEdgeDeleteEdge(), graph_knot_contract(), and pcReduceTermDeg2().
◆ graph_valid_ancestors()
valid ancestors (no conflicts)?
- Parameters
-
scip SCIP data structure g the graph
Definition at line 753 of file graph_history.c.
References GRAPH::ancestors, ancestorsMarkConflict(), ancestorsUnmarkConflict(), GRAPH::cost, EAT_FREE, GRAPH::edges, FALSE, fixedPseudoAncestorsAreValid(), graph_pc_isPcMw(), graph_typeIsUndirected(), MAX, NULL, GRAPH::oeat, GRAPH::orgedges, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), TRUE, and GRAPH::withInexactReductions.
Referenced by reduce_da(), and reduce_redLoopStp().
◆ graph_pseudoAncestors_hashEdge()
void graph_pseudoAncestors_hashEdge | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
int * | hasharr | ||
) |
hash ancestors of given edge
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to hash hasharr hash array
Definition at line 824 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_hash().
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), generalStarSetUp(), and pseudoAncestorsHash().
◆ graph_pseudoAncestors_hashNode()
void graph_pseudoAncestors_hashNode | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
int * | hasharr | ||
) |
hash ancestors of given node
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to hash hasharr hash array
Definition at line 840 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_hash(), and nnodes.
Referenced by pseudoAncestorsHashPc().
◆ graph_pseudoAncestors_unhashEdge()
void graph_pseudoAncestors_unhashEdge | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
int * | hasharr | ||
) |
unhash ancestors of given edge
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to unhash hasharr hash array
Definition at line 854 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_unhashPartial().
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), extreduce_extCompClean(), extTreeStackTopAdd(), extTreeStackTopRemove(), extUnhashInitialComponent(), generalStarSetUp(), graph_pseudoAncestors_edgesInConflict(), and pseudoAncestorsHash().
◆ graph_pseudoAncestors_unhashNode()
void graph_pseudoAncestors_unhashNode | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
int * | hasharr | ||
) |
hash ancestors of given node
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to unhash hasharr hash array
Definition at line 870 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_unhashPartial(), and nnodes.
Referenced by pseudoAncestorsHashPc().
◆ graph_pseudoAncestors_hashEdgeDirty()
void graph_pseudoAncestors_hashEdgeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
SCIP_Bool | revertIfConflict, | ||
SCIP_Bool * | conflict, | ||
int * | hasharr | ||
) |
hash ancestors of given edge with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to hash revertIfConflict revert on conflict? conflict conflict? hasharr hash array
Definition at line 884 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_hashDirty().
Referenced by extTreeStackTopAdd(), generalStarSetUp(), graph_pseudoAncestors_edgesInConflict(), and pseudoAncestorsHash().
◆ graph_pseudoAncestors_hashNodeDirty()
void graph_pseudoAncestors_hashNodeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
SCIP_Bool | revertIfConflict, | ||
SCIP_Bool * | conflict, | ||
int * | hasharr | ||
) |
hash ancestors of given node with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to hash revertIfConflict revert on conflict? conflict conflict? hasharr hash array
Definition at line 902 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_hashDirty(), and nnodes.
Referenced by pseudoAncestorsHashPc().
◆ graph_pseudoAncestors_unhashEdgeDirty()
void graph_pseudoAncestors_unhashEdgeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
int * | hasharr | ||
) |
unhash ancestors of given edge with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to unhash hasharr hash array
Definition at line 918 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_unhashDirty().
◆ graph_pseudoAncestors_unhashNodeDirty()
void graph_pseudoAncestors_unhashNodeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
int * | hasharr | ||
) |
hash ancestors of given node with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to unhash hasharr hash array
Definition at line 934 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_unhashDirty(), and nnodes.
◆ graph_pseudoAncestors_edgeIsHashed()
SCIP_Bool graph_pseudoAncestors_edgeIsHashed | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
const int * | hasharr | ||
) |
any ancestors of given edge already hashed?
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to check hasharr hash array
Definition at line 948 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_hashIsHitBlock().
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), extreduce_stackTopIsHashed(), extreduce_treeIsHashed(), and extTreeRuleOutEdgeSimple().
◆ graph_pseudoAncestors_nodeIsHashed()
SCIP_Bool graph_pseudoAncestors_nodeIsHashed | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
const int * | hasharr | ||
) |
any ancestors of given node already hashed?
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to check hasharr hash array
Definition at line 962 of file graph_history.c.
References pseudo_ancestors::ans_nodes, and blockedAncestors_hashIsHitBlock().
◆ graph_initAncestors()
SCIP_RETCODE graph_initAncestors | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes edge ancestors
- Parameters
-
scip SCIP data structure g the graph
Definition at line 975 of file graph_history.c.
References GRAPH::ancestors, graph_get_nEdges(), graph_typeIsUndirected(), Int_List_Node::index, NULL, Int_List_Node::parent, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory().
Referenced by graph_initHistory(), and graph_subgraphCompleteNewHistory().
◆ graph_pseudoAncestors_edgesInConflict()
SCIP_Bool graph_pseudoAncestors_edgesInConflict | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const int * | edges, | ||
int | nedges | ||
) |
any ancestors of given edges in conflict?
- Parameters
-
scip SCIP data structure g the graph edges edges to check nedges number of edges to check
Definition at line 1010 of file graph_history.c.
References FALSE, graph_pseudoAncestors_hashEdgeDirty(), graph_pseudoAncestors_unhashEdge(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::knots, GRAPH::pseudoancestors, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, and TRUE.
Referenced by bdkStarIsReplacableDeg3(), bdkStarIsReplacableDegGe4(), isPseudoDeletable(), and isPseudoDeletableDeg3().
◆ graph_initPseudoAncestors()
SCIP_RETCODE graph_initPseudoAncestors | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes pseudo ancestors
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1049 of file graph_history.c.
References GRAPH::edges, graph_initPseudoAncestorsSized(), NULL, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_initHistory(), packPseudoAncestors(), SCIP_DECL_PROBCOPY(), and SCIPprobdataCreateFromGraph().
◆ graph_initPseudoAncestorsSized()
SCIP_RETCODE graph_initPseudoAncestorsSized | ( | SCIP * | scip, |
int | nedges, | ||
GRAPH * | g | ||
) |
initializes pseudo ancestors with given size
- Parameters
-
scip SCIP data structure nedges number of edges to use g the graph
Definition at line 1064 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_init(), graph_pc_isPcMw(), pseudo_ancestors::halfnedges, GRAPH::knots, pseudo_ancestors::nAllPseudoancestors, pseudo_ancestors::nnodes, NULL, GRAPH::pseudoancestors, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory.
Referenced by extractSubgraphInitHistory(), and graph_initPseudoAncestors().
◆ graph_freePseudoAncestors()
frees pseudo ancestors
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1101 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_free(), pseudo_ancestors::nAllPseudoancestors, NULL, GRAPH::pseudoancestors, and SCIPfreeMemoryArray.
Referenced by graph_freeHistory().
◆ graph_edge_delPseudoAncestors()
frees pseudo ancestor block for given edge
- Parameters
-
scip SCIP data structure edge_free edge for which to free pseudo ancestors g the graph
Definition at line 1128 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_freeBlock(), and GRAPH::pseudoancestors.
Referenced by graph_edge_delHistory(), graph_knot_contract(), graph_pseudoAncestors_appendMoveEdge(), and pseudoAncestorsCreation().
◆ graph_knot_delPseudoAncestors()
frees pseudo ancestor block for given node
- Parameters
-
scip SCIP data structure node_free node for which to free pseudo ancestors g the graph
Definition at line 1144 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_freeBlock(), graph_pc_isPcMw(), and GRAPH::pseudoancestors.
Referenced by graph_fixed_moveNodePc(), and graph_pseudoAncestors_appendMoveNode().
◆ graph_edge_nPseudoAncestors()
int graph_edge_nPseudoAncestors | ( | const GRAPH * | g, |
int | edge | ||
) |
returns number of pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return number of pseudo ancestors
Definition at line 1159 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
Referenced by extractSubgraphAddEdge(), extreduce_stackTopIsHashed(), extreduce_treeIsHashed(), graph_copyPseudoAncestors(), graph_fixed_addEdge(), graph_knot_contract(), graph_knot_replaceDeg2(), graph_printEdgeConflicts(), graph_singletonAncestors_init(), graph_subgraphCompleteNewHistory(), packPseudoAncestors(), pacliquesBuildMap(), pseudoAncestorsCreation(), pseudoAncestorsMerge(), pseudoDelDouble(), pseudoDelSingle(), and reduce_fixedConflicts().
◆ graph_knot_nPseudoAncestors()
int graph_knot_nPseudoAncestors | ( | const GRAPH * | g, |
int | node | ||
) |
returns number of pseudo ancestors for given node
- Parameters
-
g the graph node node for which to return number of pseudo ancestors
Definition at line 1174 of file graph_history.c.
References pseudo_ancestors::ans_nodes, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
Referenced by graph_fixed_addNodePc(), graph_printEdgeConflicts(), and pseudoAncestorsMergePc().
◆ graph_edge_getPseudoAncestors()
const int* graph_edge_getPseudoAncestors | ( | const GRAPH * | g, |
int | edge | ||
) |
returns pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return pseudo ancestors
Definition at line 1187 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blocked_pseudo_ancestor::blocks, and GRAPH::pseudoancestors.
Referenced by extractSubgraphAddEdge(), graph_copyPseudoAncestors(), graph_fixed_addEdge(), graph_knot_replaceDeg2(), graph_printEdgeConflicts(), graph_singletonAncestors_init(), graph_subgraphCompleteNewHistory(), packPseudoAncestors(), pacliquesBuildMap(), pseudoDelSingle(), and reduce_fixedConflicts().
◆ graph_edge_getAncestors()
returns pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return ancestors
Definition at line 1202 of file graph_history.c.
References GRAPH::ancestors, flipedge, graph_edge_isInRange(), graph_typeIsUndirected(), and NULL.
Referenced by computeHistory(), computeHistoryPcMw(), computeReducedProbSolutionBiased(), delPseudoPath(), extractSubgraphAddEdge(), graph_fixed_addEdge(), graph_knot_replaceDeg2(), graph_pc_contractNodeAncestors(), graph_singletonAncestors_init(), markAncestors(), markAncestorsConflict(), mwTraverseChain(), reduce_contract0Edges(), retransformReducedProbSolution(), ruleOutSubtree(), SCIPStpHeurRecExclude(), solstp_getOrg(), unmarkAncestors(), and unmarkAncestorsConflict().
◆ graph_knot_printPseudoAncestors()
void graph_knot_printPseudoAncestors | ( | const GRAPH * | g, |
int | node | ||
) |
prints pseudo ancestors for given node
- Parameters
-
g the graph node node for which to return pseudo ancestors
Definition at line 1226 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blocked_pseudo_ancestor::blocks, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
◆ graph_edge_printPseudoAncestors()
void graph_edge_printPseudoAncestors | ( | const GRAPH * | g, |
int | edge | ||
) |
prints pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return pseudo ancestors
Definition at line 1248 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blocked_pseudo_ancestor::blocks, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
◆ graph_knot_getPseudoAncestors()
const int* graph_knot_getPseudoAncestors | ( | const GRAPH * | g, |
int | node | ||
) |
returns pseudo ancestors for given node
- Parameters
-
g the graph node node for which to return pseudo ancestors
Definition at line 1269 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blocked_pseudo_ancestor::blocks, and GRAPH::pseudoancestors.
Referenced by graph_fixed_addNodePc(), and graph_printEdgeConflicts().
◆ graph_getNpseudoAncestors()
int graph_getNpseudoAncestors | ( | const GRAPH * | g | ) |
returns number of pseudo-ancestors
- Parameters
-
g the graph
Definition at line 1282 of file graph_history.c.
References pseudo_ancestors::nAllPseudoancestors, and GRAPH::pseudoancestors.
Referenced by extractSubgraphInitHistory(), graph_copyPseudoAncestors(), packPseudoAncestors(), reinsertSubgraphTransferFixedHistory(), and sepaspecial_pacliquesInit().
◆ graph_addPseudoAncestor()
void graph_addPseudoAncestor | ( | GRAPH * | g, |
int * | pseudoancestor | ||
) |
adds new pseudo ancestor and provides index
- Parameters
-
g the graph (in/out) pseudoancestor gives the new pseudo ancestor index (out)
Definition at line 1293 of file graph_history.c.
References pseudo_ancestors::nAllPseudoancestors, and GRAPH::pseudoancestors.
Referenced by delPseudoDeleteVertex(), delPseudoPathCreatePseudoAncestorTuple(), pseudoAncestorsCreation(), pseudoAncestorsHash(), pseudoAncestorsMerge(), and testEdgeDeletion2_deprecated().
◆ graph_addPseudoAncestors()
void graph_addPseudoAncestors | ( | int | nadd, |
GRAPH * | g | ||
) |
adds n new pseudo ancestor
- Parameters
-
nadd number of ancestors to add g the graph (in/out)
Definition at line 1307 of file graph_history.c.
References pseudo_ancestors::nAllPseudoancestors, and GRAPH::pseudoancestors.
Referenced by extractSubgraphInitHistory(), graph_copyPseudoAncestors(), packPseudoAncestors(), and reinsertSubgraphTransferFixedHistory().
◆ graph_pseudoAncestorsGetHashArraySize()
int graph_pseudoAncestorsGetHashArraySize | ( | const PSEUDOANS * | pseudoancestors | ) |
returns minimum required number for hash array
- Parameters
-
pseudoancestors pseudo-ancestors
Definition at line 1321 of file graph_history.c.
References getNextPow2(), and pseudo_ancestors::nAllPseudoancestors.
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), extreduce_checkComponent(), extreduce_reddataIsClean(), fixedPseudoAncestorsAreValid(), generalStarSetUp(), graph_pseudoAncestors_addToEdge(), graph_pseudoAncestors_addToNode(), graph_pseudoAncestors_appendCopyArrayToEdge(), graph_pseudoAncestors_appendCopyEdge(), graph_pseudoAncestors_appendCopyEdgeToNode(), graph_pseudoAncestors_appendCopyNode(), graph_pseudoAncestors_appendCopyNodeToEdge(), graph_pseudoAncestors_appendCopySingToEdge(), graph_pseudoAncestors_edgesInConflict(), graph_valid_pseudoAncestors(), pseudoAncestorsHash(), pseudoAncestorsHashPc(), and reduce_fixedConflicts().
◆ graph_pseudoAncestors_appendCopyEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopyEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | edge_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of edge_source to edge_target
- Parameters
-
scip SCIP data structure edge_target edge target edge_source edge source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1334 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by delPseudoPath(), and graph_pseudoAncestors_appendMoveEdge().
◆ graph_pseudoAncestors_appendCopyNode()
SCIP_RETCODE graph_pseudoAncestors_appendCopyNode | ( | SCIP * | scip, |
int | node_target, | ||
int | node_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of node source to node target
- Parameters
-
scip SCIP data structure node_target node target node_source node source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1358 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_pseudoAncestors_appendMoveNode().
◆ graph_pseudoAncestors_appendCopyNodeToEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopyNodeToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | node_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of node source to edge target
- Parameters
-
scip SCIP data structure edge_target edge target node_source node source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1380 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_edge_reinsert(), and graph_knot_replaceDeg2().
◆ graph_pseudoAncestors_appendCopyEdgeToNode()
SCIP_RETCODE graph_pseudoAncestors_appendCopyEdgeToNode | ( | SCIP * | scip, |
int | node_target, | ||
int | edge_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of edge source to node target
- Parameters
-
scip SCIP data structure node_target node target edge_source edge source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1403 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
◆ graph_pseudoAncestors_appendCopySingToEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopySingToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
const SINGLETONANS * | source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends given of pseudo ancestors to edge target
- Parameters
-
scip SCIP data structure edge_target edge target source source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1426 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_appendArray(), FALSE, graph_pseudoAncestorsGetHashArraySize(), singleton_ancestors_edge::npseudoancestors, singleton_ancestors_edge::pseudoancestors, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_edge_reinsert(), and graph_knot_contract().
◆ graph_pseudoAncestors_appendCopyArrayToEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopyArrayToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
const int * | ancestors, | ||
int | nancestors, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors in array form to edge target
- Parameters
-
scip SCIP data structure edge_target edge target ancestors pseudo ancestors array nancestors number of ancestors g the graph conflict conflict?
Definition at line 1458 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_appendArray(), FALSE, graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_Bool, SCIP_CALL, and SCIP_OKAY.
Referenced by extractSubgraphAddEdge(), graph_copyPseudoAncestors(), graph_knot_replaceDeg2(), graph_subgraphCompleteNewHistory(), and packPseudoAncestors().
◆ graph_pseudoAncestors_appendMoveEdge()
SCIP_RETCODE graph_pseudoAncestors_appendMoveEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | edge_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends pseudo ancestors of edge_source to edge_target, ancestors for edge_source are deleted
- Parameters
-
scip SCIP data structure edge_target target edge edge_source source edge revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1489 of file graph_history.c.
References graph_edge_delPseudoAncestors(), graph_pseudoAncestors_appendCopyEdge(), SCIP_CALL, and SCIP_OKAY.
Referenced by pseudoAncestorsMerge().
◆ graph_pseudoAncestors_appendMoveNode()
SCIP_RETCODE graph_pseudoAncestors_appendMoveNode | ( | SCIP * | scip, |
int | node_target, | ||
int | node_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends pseudo ancestors of node source to node target, ancestors for source are deleted
- Parameters
-
scip SCIP data structure node_target target node node_source source node revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1506 of file graph_history.c.
References graph_knot_delPseudoAncestors(), graph_pseudoAncestors_appendCopyNode(), SCIP_CALL, and SCIP_OKAY.
Referenced by pseudoAncestorsMergePc().
◆ graph_pseudoAncestors_addToEdge()
SCIP_RETCODE graph_pseudoAncestors_addToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | ancestor, | ||
GRAPH * | g | ||
) |
adds pseudo ancestor to ancestor list of given edge
- Parameters
-
scip SCIP data structure edge_target edge for which to add pseudo ancestor ancestor (index of) pseudo ancestor g the graph
Definition at line 1523 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_addAncestor(), graph_pseudoAncestorsGetHashArraySize(), pseudo_ancestors::halfnedges, pseudo_ancestors::nAllPseudoancestors, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by delPseudoDeleteVertex(), delPseudoPathCreatePseudoAncestorTuple(), pseudoAncestorsCreation(), pseudoAncestorsHash(), pseudoAncestorsMerge(), and testEdgeDeletion2_deprecated().
◆ graph_pseudoAncestors_addToNode()
SCIP_RETCODE graph_pseudoAncestors_addToNode | ( | SCIP * | scip, |
int | node_target, | ||
int | ancestor, | ||
GRAPH * | g | ||
) |
adds pseudo ancestor to ancestor list of given node
- Parameters
-
scip SCIP data structure node_target node for which to add pseudo ancestor ancestor (index of) pseudo ancestor g the graph
Definition at line 1545 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_addAncestor(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), graph_pseudoAncestorsGetHashArraySize(), pseudo_ancestors::nAllPseudoancestors, pseudo_ancestors::nnodes, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by pseudoAncestorsHashPc(), and pseudoAncestorsMergePc().
◆ graph_valid_pseudoAncestors()
valid pseudo-ancestors (no conflicts)?
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1569 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_isValid(), FALSE, graph_pc_isPcMw(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_Bool, SCIP_OKAY, and TRUE.
Referenced by graph_knot_replaceDeg2().
◆ graph_init_fixed()
SCIP_RETCODE graph_init_fixed | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes fixed
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1618 of file graph_history.c.
References FALSE, GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::fixpseudonodes, fixed_graph_components::movedFrom, fixed_graph_components::nfixnodes, NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory.
Referenced by graph_copyFixed(), and graph_fixed_add().
◆ graph_free_fixed()
frees fixed
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1642 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::fixpseudonodes, fixed_graph_components::nfixnodes, NULL, Int_List_Node::parent, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, and SCIPfreeMemory.
Referenced by graph_freeHistoryDeep(), and reinsertSubgraphTransferFixedHistory().
◆ graph_free_fixedEdgesOnly()
frees fixed edges
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1671 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::nfixnodes, NULL, Int_List_Node::parent, and SCIPfreeBlockMemory.
Referenced by graph_subgraphCompleteNewHistory().
◆ graph_fixed_add()
SCIP_RETCODE graph_fixed_add | ( | SCIP * | scip, |
IDX * | edges, | ||
const int * | pseudonodes, | ||
int | npseudonodes, | ||
GRAPH * | g | ||
) |
adds new fixed components
- Parameters
-
scip SCIP data structure edges edge to add or NULL pseudonodes nodes to add npseudonodes number of nodes to add g the graph
Definition at line 1698 of file graph_history.c.
References FALSE, GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixedPseudoAncestorsAreValid(), fixed_graph_components::fixpseudonodes, graph_init_fixed(), fixed_graph_components::movedFrom, fixed_graph_components::nfixnodes, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPintListNodeAppendCopy(), SCIPreallocBlockMemoryArray, and GRAPH::withInexactReductions.
Referenced by graph_fixed_addEdge(), and graph_fixed_addNodePc().
◆ graph_fixed_addEdge()
SCIP_RETCODE graph_fixed_addEdge | ( | SCIP * | scip, |
int | edge, | ||
GRAPH * | g | ||
) |
adds ancestors from given edges
- Parameters
-
scip SCIP data structure edge edge g the graph
Definition at line 1760 of file graph_history.c.
References GRAPH::ancestors, graph_edge_getAncestors(), graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_fixed_add(), SCIP_CALL, and SCIP_OKAY.
Referenced by contractEdgeWithFixedEnd(), graph_knot_contractFixed(), reduce_contract0Edges(), and reduce_simple().
◆ graph_fixed_addNodePc()
SCIP_RETCODE graph_fixed_addNodePc | ( | SCIP * | scip, |
int | node, | ||
GRAPH * | g | ||
) |
adds ancestors from given edges
- Parameters
-
scip SCIP data structure node node g the graph
Definition at line 1778 of file graph_history.c.
References GRAPH::ancestors, graph_fixed_add(), graph_knot_getPseudoAncestors(), graph_knot_nPseudoAncestors(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), GRAPH::pcancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_fixed_moveNodePc(), and packPcMwVanished().
◆ graph_fixed_moveNodePc()
SCIP_RETCODE graph_fixed_moveNodePc | ( | SCIP * | scip, |
int | node, | ||
GRAPH * | g | ||
) |
moves ancestors from given edges
- Parameters
-
scip SCIP data structure node node g the graph
Definition at line 1798 of file graph_history.c.
References graph_fixed_addNodePc(), graph_knot_delPseudoAncestors(), graph_pc_isPcMw(), GRAPH::pcancestors, SCIP_CALL, SCIP_OKAY, and SCIPintListNodeFree().
Referenced by contractEdgeWithFixedEnd().
◆ graph_fixed_resetMoved()
void graph_fixed_resetMoved | ( | GRAPH * | g | ) |
resets
- Parameters
-
g the graph
Definition at line 1821 of file graph_history.c.
References FALSE, GRAPH::fixedcomponents, fixed_graph_components::movedFrom, and NULL.
Referenced by reinsertSubgraphTransferFixedHistory().
◆ graph_initContractTracing()
SCIP_RETCODE graph_initContractTracing | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
initializes
- Parameters
-
scip SCIP data structure graph graph
Definition at line 1836 of file graph_history.c.
References GRAPH::contracttrace, graph_get_nNodes(), nnodes, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by extractSubgraphBuild().
◆ graph_knot_hasContractTrace()
has the node a contract trace?
- Parameters
-
node node to trace back from graph graph
Definition at line 1859 of file graph_history.c.
References GRAPH::contracttrace, and graph_knot_isInRange().
Referenced by borderNodesContract(), and reinsertSubgraphTransferTerminals().
◆ graph_contractTrace()
int graph_contractTrace | ( | int | node, |
const GRAPH * | graph | ||
) |
traces contraction back; returns traced node
- Parameters
-
node node to trace back from graph graph
Definition at line 1872 of file graph_history.c.
References GRAPH::contracttrace, GRAPH::grad, and graph_knot_isInRange().
Referenced by borderNodesContract(), and reinsertSubgraphTransferTerminals().
◆ graph_copyFixed()
SCIP_RETCODE graph_copyFixed | ( | SCIP * | scip, |
GRAPH * | g, | ||
SCIP_Bool | moveFixedEdges, | ||
GRAPH * | g_copy | ||
) |
copies and potentially moves fixed components
- Parameters
-
scip SCIP data structure g the original graph moveFixedEdges move fixed edges? If false, nothing is done! g_copy the copied graph
Definition at line 1895 of file graph_history.c.
References BMScopyMemoryArray, GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::fixpseudonodes, graph_init_fixed(), fixed_graph_components::movedFrom, fixed_graph_components::nfixnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, and TRUE.
Referenced by extractSubgraphInitHistory().
◆ graph_getFixedges()
gets fixed edges
- Parameters
-
g the graph
Definition at line 1944 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixedges, and NULL.
Referenced by computeHistory(), computeHistoryPcMw(), reduce_exec(), retransformReducedProbSolution(), SCIPStpHeurRecExclude(), solstp_getOrg(), updateEdgestateFromRed(), and updateEdgestateFromRedPcmw().
◆ graph_getFixpseudonodes()
gets fixed pseudo eliminated nodes
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1957 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixpseudonodes, and NULL.
Referenced by fixedPseudoAncestorsAreValid(), and reduce_fixedConflicts().
◆ graph_getNfixpseudonodes()
int graph_getNfixpseudonodes | ( | const GRAPH * | g | ) |
gets number of fixed pseudo eliminated nodes
- Parameters
-
g the graph
Definition at line 1971 of file graph_history.c.
References GRAPH::fixedcomponents, and fixed_graph_components::nfixnodes.
Referenced by fixedPseudoAncestorsAreValid(), graph_printEdgeConflicts(), reduce_fixedConflicts(), and reinsertSubgraphTransferFixedHistory().