CRU_VERTEX_COUNT (3)
CRU MANUAL
CRU_VERTEX_COUNT (3)

NAME

cru_vertex_count - compute the number of vertices in a graph

SYNOPSIS

#include <cru/cru.h>

uintptr_t cru_vertex_count (
   cru_graph g ,
   unsigned lanes ,
   int *err )

DESCRIPTION

This function calculates the number of vertices in a graph g by visiting each vertex and counting it toward the total.

The lanes parameter specifies the number of worker threads to be used for the operation. Higher numbers up to the number of CPU cores on the host are conducive to higher performance.

For memory management purposes, no parameters are consumed or modified.

RETURN VALUE

On successful completion, the function returns the number of vertices in the graph g. It might return zero in the event of an error or if the graph has no vertices, which is not in itself an error, or it might return the correct value even in the event of an error by resorting to an alternative algorithm. It is reasonable to assume any non-zero value returned is correct, and that a zero return value is correct if and only if the graph g is NULL.

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.

EAGAIN

Resources or permissions are insufficient to acquire a lock.

CRU_BADGPH

The parameter g refers to an invalid or corrupted graph.

NOTES

This calculation could also be done using the cru_mapreduced function, but is faster this way.

Misleading results are possible if the graph is in need of deduplication by the cru_deduplicated function.

If a test only for emptiness of a graph is required, applications may avoid counting the vertices by relying on the condition that only the NULL graph has zero vertices.

FILES

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

/usr/local/include/cru/data_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_stretch, cru_stretched, cru_stretcher, cru_subconnector, cru_terminus_count, cru_top, cru_tpred, cru_united, cru_uop, cru_zone,

AUTHOR

Dennis Furey (milonga@delayinsensitive.com)

PROJECT PAGE

https://github.com/gueststar/cru

CRU VERSION 0.15.3
October 05, 2024
CRU_VERTEX_COUNT (3)