CRU_STRETCH (3)
CRU MANUAL
CRU_STRETCH (3)

NAME

cru_stretch - insert a new vertex between two vertices in a graph

SYNOPSIS

#include <cru/cru.h>

void cru_stretch (
   cru_edge label_in ,
   cru_vertex new_vertex ,
   cru_edge label_out ,
   int *err )

DESCRIPTION

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.

RETURN VALUE

none

ERRORS

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.

FILES

/usr/local/include/cru/cru.h

/usr/local/include/cru/function_types.h

/usr/local/include/cru/error_codes.h

SEE ALSO

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

AUTHOR

Dennis Furey (milonga@delayinsensitive.com)

PROJECT PAGE

https://github.com/gueststar/cru

CRU VERSION 0.15.3
October 05, 2024
CRU_STRETCH (3)