26#define VL_MIN(a, b) ((a) < (b) ? (a) : (b))
34#define VL_MAX(a, b) ((a) > (b) ? (a) : (b))
41#define VL_ABS(x) ((x) < 0 ? -(x) : (x))
50#define VL_CLAMP(x, min, max) VL_MAX(min, VL_MIN(x, max))
VL_API vl_bool_t vlAlgoSubUnderflow(vl_ularge_t a, vl_ularge_t b)
Tests whether subtracting two unsigned integers would cause underflow.
Definition vl_algo.c:475
VL_API vl_uint_t vlAlgoCLZ32(vl_uint32_t value)
Counts the number of leading zero bits in a 32-bit value.
Definition vl_algo.c:135
VL_API vl_uint_t vlAlgoCTZ8(vl_uint8_t value)
Counts the number of trailing zero bits in an 8-bit value.
Definition vl_algo.c:215
VL_API vl_uint_t vlAlgoPopCount32(vl_uint32_t value)
Counts the number of set bits (population count) in a 32-bit value.
Definition vl_algo.c:55
VL_API vl_ularge_t vlAlgoLCM(vl_ularge_t a, vl_ularge_t b)
Computes the Least Common Multiple (LCM) of two unsigned integers.
Definition vl_algo.c:454
VL_API vl_bool_t vlAlgoMulOverflow(vl_ularge_t a, vl_ularge_t b)
Tests whether multiplying two unsigned integers would cause overflow.
Definition vl_algo.c:488
VL_API vl_uint_t vlAlgoPopCount16(vl_uint16_t value)
Counts the number of set bits (population count) in a 16-bit value.
Definition vl_algo.c:37
VL_API vl_uint_t vlAlgoCTZ64(vl_uint64_t value)
Counts the number of trailing zero bits in a 64-bit value.
Definition vl_algo.c:276
VL_API vl_uint_t vlAlgoCLZ8(vl_uint8_t value)
Counts the number of leading zero bits in an 8-bit value.
Definition vl_algo.c:84
VL_API vl_uint_t vlAlgoNextPO2(vl_ularge_t value)
Computes the next power of 2 greater than or equal to the given value.
Definition vl_algo.c:313
VL_API vl_uint_t vlAlgoPopCount8(vl_uint8_t value)
Counts the number of set bits (population count) in an 8-bit value.
Definition vl_algo.c:19
VL_API vl_ularge_t vlAlgoGCD(vl_ularge_t a, vl_ularge_t b)
Computes the Greatest Common Divisor (GCD) of two unsigned integers.
Definition vl_algo.c:365
VL_API vl_uint_t vlAlgoCLZ64(vl_uint64_t value)
Counts the number of leading zero bits in a 64-bit value.
Definition vl_algo.c:177
VL_API vl_uint_t vlAlgoCTZ16(vl_uint16_t value)
Counts the number of trailing zero bits in a 16-bit value.
Definition vl_algo.c:233
VL_API vl_ilarge_t vlAlgoLCMSigned(vl_ilarge_t a, vl_ilarge_t b)
Computes the Least Common Multiple (LCM) of two signed integers.
Definition vl_algo.c:419
VL_API vl_uint_t vlAlgoPopCount64(vl_uint64_t value)
Counts the number of set bits (population count) in a 64-bit value.
Definition vl_algo.c:69
VL_API vl_bool_t vlAlgoIsPO2(vl_ularge_t value)
Tests whether a value is a power of 2.
Definition vl_algo.c:347
VL_API vl_uint_t vlAlgoCTZ32(vl_uint32_t value)
Counts the number of trailing zero bits in a 32-bit value.
Definition vl_algo.c:257
VL_API vl_bool_t vlAlgoAddOverflow(vl_ularge_t a, vl_ularge_t b)
Tests whether adding two unsigned integers would cause overflow.
Definition vl_algo.c:348
VL_API vl_uint_t vlAlgoCLZ16(vl_uint16_t value)
Counts the number of leading zero bits in a 16-bit value.
Definition vl_algo.c:118
VL_API vl_ilarge_t vlAlgoGCDSigned(vl_ilarge_t a, vl_ilarge_t b)
Computes the Greatest Common Divisor (GCD) of two signed integers.
Definition vl_algo.c:410
VL_UINT_T vl_uint_t
Standard unsigned integer type.
Definition vl_numtypes.h:158
VL_BOOL_T vl_bool_t
Definition vl_numtypes.h:191
VL_ULARGE_T vl_ularge_t
Largest available unsigned integer type.
Definition vl_numtypes.h:136
VL_ILARGE_T vl_ilarge_t
Largest available signed integer type.
Definition vl_numtypes.h:140