CRU_BPRED (7)
CRU MANUAL
CRU_BPRED (7)

NAME

cru_bpred - binary predicate type used in the cru library

SYNOPSIS

#include <cru/cru.h>

typedef int (*cru_bpred)(void *, void *, int *)

DESCRIPTION

A user-defined binary predicate takes a pair of operands and a pointer to an initially zero error code as arguments. The operands can be scalar values, pointers to heap allocated storage, or a combination. The operator must treat the operands as read only but may assign the error code.

Binary predicates model mathematical relations and are used as decision procedures in various contexts. See the NOTES for details.

RETURN VALUE

Viewed as a relation, a binary predicate returns zero if its operands are unrelated and a non-zero value if they are related.

ERRORS

If a binary predicate sets the error code to any non-zero value, the cru API function invoking it terminates early without completing, and propagates the same error code to its caller.

Applications can report POSIX error codes or define special purpose codes, but should not redefine any that clash with those reserved by cru as declared in the error_codes.h header file.

NOTES

Applications pass binary predicates to cru as pointers through

A conditional binary operator can be the postponement field in a cru_postponer or the e_prod field in a cru_crosser.

FILES

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

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

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

SEE ALSO

cru, cru_bop, 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_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_BPRED (7)