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 \(b \geq 2\).
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¶
-
mp_limb_signed_t 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\), \(\pm 1\),COEFF_MAX
,COEFF_MIN
,WORD_MAX
andWORD_MIN
is increased.This random function is mainly used for testing purposes.
-
mp_limb_signed_t z_randtest_not_zero(flint_rand_t state)¶
As for
z_randtest(state)
, but does not return \(0\).
-
mp_limb_t z_randint(flint_rand_t state, mp_limb_t limit)¶
Returns a pseudo random number of absolute value less than
limit
. Iflimit
is zero or exceedsWORD_MAX
, it is interpreted asWORD_MAX
.
Modular arithmetic¶
-
int z_kronecker(slong a, slong n)¶
Return the Kronecker symbol \(\left(\frac{a}{n}\right)\) for any \(a\) and any \(n\).