cru_kernel - a pair of related operations on vertices and edges
#include <cru/cru.h>
typedef struct
cru_kernel_s
{
struct
cru_prop_s
v_op;
struct
cru_fold_s
e_op;
} *cru_kernel;
The cru_kernel structure specifies a related pair of user-defined operations, one for vertices and one for edges, to be passed by applications to cru library functions that use them when visiting the site of each vertex in a graph. The v_op field holds the vertex operation specification, and the e_op field holds that of the edges.
The latter point implies that when operating on an outgoing edge from a vertex being visited, the e_op.map function has the edge's origin as its left operand and the terminus as its right operand. When operating on an incoming edge to a vertex being visited, the left operand is the terminus of the edge and the right operand is its origin.
When the cru_kernel structure is a field in a cru_mutator or a cru_filter structure, no function is required for the v_op.vertex.reduction. All reduction functions are required when the cru_kernel is a field in a cru_merger.
/usr/local/include/cru/data_types.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_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_stretch, 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