cru_stretch - insert a new vertex between two vertices in a graph
#include <cru/cru.h>
void
cru_stretch
(
cru_edge
label_in
,
cru_vertex
new_vertex
,
cru_edge
label_out
,
int *err
)
This function installs edges labeled label_in and label_out made to terminate and to originate respectively at a vertex given by new_vertex into a graph being stretched by the cru_stretched library function. The cru_edge and cru_vertex types are aliases for void pointers that can be cast from any compatible types specific to the application. If they are pointers to dynamically allocated storage, then the caller must allocate and initialize the storage before calling cru_stretch. The caller must detect and prevent dangling pointers from being passed.
This function is meant to be called only by a user-defined cru_tpred callback function referenced by the expander field of a cru_stretcher structure passed to cru_stretched. The edges and the vertex are installed in the graph parallel to the edge passed to the callback function, with the edge labeled by label_in originating from the edge's origin and the edge labeled by label_out terminating at the edge's terminus.
none
The err parameter is used to report any events preventing successful completion of the requested operation to the caller. If *err is zero on entry and the operation does not succeed, then *err is assigned a non-zero number. Positive numbers are for POSIX or user-defined error codes, and negative numbers down to -CRU_MAX_ERR are specific to cru.
Values of *err listed below refer to errors that are detected and handled. Unlisted values in the range of -CRU_INT_ERR through -CRU_MAX_ERR likely indicate internal errors attributable to bugs in cru. Any other unlisted values may indicate memory corruption or invalid usage of the API.
ENOMEM
There is insufficient memory to allocate all necessary resources.
CRU_INTOOC
The function was called outside the context of callback function referenced through a cru_stretcher.
/usr/local/include/cru/cru.h
/usr/local/include/cru/function_types.h
/usr/local/include/cru/error_codes.h
cru, cru_bop, cru_bpred, cru_builder, cru_built, cru_cbop, cru_classifier, cru_class_of, cru_class_size, cru_composed, cru_composer, cru_connect, cru_connector, cru_cqop, cru_crossed, cru_crosser, cru_ctop, cru_ctop_pair, cru_ctop_quad, cru_data_types, cru_deduplicated, cru_destructor, cru_destructor_pair, cru_edge_count, cru_fabricated, cru_fabricator, cru_filter, cru_filtered, cru_fold, cru_free_kill_switch, cru_free_later, cru_free_now, cru_free_partition, cru_function_types, cru_get, cru_hash, cru_induced, cru_inducer, cru_kernel, cru_kill, cru_killed, cru_mapreduced, cru_mapreducer, cru_merged, cru_merger, cru_mutated, cru_mutator, cru_new_kill_switch, cru_nop, cru_order, cru_order_pair, cru_partition_of, cru_plan, cru_postponed, cru_postponer, cru_prop, cru_prop_pair, cru_pruner, cru_qop, cru_qpred, cru_set, cru_sig, cru_singleton, cru_split, cru_splitter, cru_spread, cru_strerror, cru_stretched, cru_stretcher, cru_subconnector, cru_terminus_count, cru_top, cru_tpred, cru_united, cru_uop, cru_vertex_count, cru_zone
Dennis Furey (milonga@delayinsensitive.com)
https://github.com/gueststar/cru