long_extras.h – support functions for signed word arithmetic

Properties

size_t z_sizeinbase(slong n, int b)

Returns the number of digits in the base b representation of the absolute value of the integer n.

Assumes that b2.

Checked Arithmetic

int z_mul_checked(slong *a, slong b, slong c)

Set a to b times c and return 1 if the product overflowed. Otherwise, return 0.

Random functions

slong z_randtest(flint_rand_t state)

Returns a pseudo random number with a random number of bits, from 0 to FLINT_BITS. The probability of the special values 0, ±1, COEFF_MAX, COEFF_MIN, WORD_MAX and WORD_MIN is increased.

This random function is mainly used for testing purposes.

slong z_randtest_not_zero(flint_rand_t state)

As for z_randtest(state), but does not return 0.

slong z_randint(flint_rand_t state, ulong limit)

Returns a pseudo random number of absolute value less than limit. If limit is zero or exceeds WORD_MAX, it is interpreted as WORD_MAX.

Modular arithmetic

int z_kronecker(slong a, slong n)

Return the Kronecker symbol (an) for any a and any n.