graph_node.c
Go to the documentation of this file.
24 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
95 assert(term == STP_TERM || term == STP_TERM_NONE || term == STP_TERM_NONLEAF || term == STP_TERM_PSEUDO);
224 SCIP_CALL( graph_pseudoAncestors_appendCopyArrayToEdge(scip, newedge, pseudoancestors1, npseudoancestors1, g, &conflict) );
226 SCIP_CALL( graph_pseudoAncestors_appendCopyArrayToEdge(scip, newedge, pseudoancestors2, npseudoancestors2, g, &conflict) );
233 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &(g->ancestors[edge_even]), g->pcancestors[ancestornode], NULL) );
236 SCIP_CALL( graph_pseudoAncestors_appendCopyNodeToEdge(scip, newedge, ancestornode, TRUE, g, &conflict) );
385 if( isUndirected && SCIPisGT(scip, g->cost[et], outcost[i]) && SCIPisGT(scip, g->cost[anti], incost[i]) )
391 /* NOTE: even in the undirected case there might be different anti-parallel weights for PC/MW */
406 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &(g->ancestors[even]), ancestors[i].ancestors, NULL) );
417 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &((g->ancestors)[et]), ancestors[i].ancestors, NULL) );
426 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &((g->ancestors)[anti]), ancestors[i].revancestors, NULL) );
436 SCIP_CALL( graph_pseudoAncestors_appendCopySingToEdge(scip, et, &(ancestors[i]), FALSE, g, &conflict) );
463 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &(g->ancestors[even]), ancestors[i].ancestors, NULL) );
467 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &(g->ancestors[es]), ancestors[i].ancestors, NULL) );
469 SCIP_CALL( graph_pseudoAncestors_appendCopySingToEdge(scip, es, &(ancestors[i]), FALSE, g, &conflict) );
486 SCIP_CALL( SCIPintListNodeAppendCopy(scip, &(g->ancestors[es]), ancestors[i].revancestors, NULL) );
Definition: misc_stp.h:88
void graph_edge_delPseudoAncestors(SCIP *, int, GRAPH *)
Definition: graph_history.c:1128
SCIP_RETCODE graph_singletonAncestors_init(SCIP *, const GRAPH *, int, SINGLETONANS *)
Definition: graph_history.c:684
int graph_edge_nPseudoAncestors(const GRAPH *, int)
Definition: graph_history.c:1159
SCIP_Bool graph_valid_pseudoAncestors(SCIP *, const GRAPH *)
Definition: graph_history.c:1569
Definition: graphdefs.h:184
Definition: struct_scip.h:59
SCIP_RETCODE graph_fixed_addEdge(SCIP *, int, GRAPH *)
Definition: graph_history.c:1760
SCIP_RETCODE graph_pseudoAncestors_appendCopyNodeToEdge(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
Definition: graph_history.c:1380
includes various files containing graph methods used for Steiner tree problems
int graph_edge_redirect(SCIP *, GRAPH *, int, int, int, SCIP_Real, SCIP_Bool, SCIP_Bool)
Definition: graph_edge.c:103
SCIP_Bool graph_knotIsNWLeaf(const GRAPH *g, int vertex)
Definition: graph_node.c:35
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip_numerics.c:438
SCIP_RETCODE SCIPintListNodeAppendCopy(SCIP *scip, IDX **node1, IDX *node2, SCIP_Bool *conflict)
Definition: misc_stp.c:197
SCIP_RETCODE graph_pseudoAncestors_appendCopySingToEdge(SCIP *, int, const SINGLETONANS *, SCIP_Bool, GRAPH *, SCIP_Bool *)
Definition: graph_history.c:1426
SCIP_RETCODE graph_pseudoAncestors_appendCopyArrayToEdge(SCIP *, int, const int *, int, GRAPH *, SCIP_Bool *)
Definition: graph_history.c:1458
SCIP_Bool graph_knot_isInRange(const GRAPH *g, int k)
Definition: graph_node.c:52
SCIP_RETCODE graph_knot_contractLowdeg2High(SCIP *scip, GRAPH *g, int *solnode, int t, int s)
Definition: graph_node.c:539
void graph_knot_del(SCIP *scip, GRAPH *g, int k, SCIP_Bool freeancestors)
Definition: graph_node.c:111
Definition: type_retcode.h:33
void graph_edge_delFull(SCIP *, GRAPH *, int, SCIP_Bool)
Definition: graph_edge.c:418
void graph_singletonAncestors_freeMembers(SCIP *, SINGLETONANS *)
Definition: graph_history.c:734
const int * graph_edge_getPseudoAncestors(const GRAPH *, int)
Definition: graph_history.c:1187
Definition: graphdefs.h:173
SCIP_RETCODE graph_knot_replaceDeg2(SCIP *scip, int vertex, SCIP_Real edgecost, int ancestornode, GRAPH *g, SCIP_Bool *edgeEliminated)
Definition: graph_node.c:158
Portable definitions.
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip_numerics.c:477
SCIP_RETCODE graph_knot_contractFixed(SCIP *scip, GRAPH *g, int *solnode, int edge, int t, int s)
Definition: graph_node.c:521
SCIP_RETCODE graph_knot_contract(SCIP *scip, GRAPH *g, int *solnode, int t, int s)
Definition: graph_node.c:264
SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip_numerics.c:464
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
Definition: scip_mem.h:102
Definition: objbenders.h:33
IDX * graph_edge_getAncestors(const GRAPH *, int)
Definition: graph_history.c:1202
void graph_knot_delFull(SCIP *scip, GRAPH *g, int k, SCIP_Bool freeancestors)
Definition: graph_node.c:131