diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2022-03-16 17:21:55 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2022-03-16 17:52:41 -0700 |
commit | 2ef037c0dd3510a51ad73fdead1ded09848166f4 (patch) | |
tree | a44593bba870cf70add2d0615efd07e3193926d9 /src/bignum.h | |
parent | 31a2428d6f2ca792af18b43ceca5cec1ecce862f (diff) | |
download | emacs-2ef037c0dd3510a51ad73fdead1ded09848166f4.tar.gz emacs-2ef037c0dd3510a51ad73fdead1ded09848166f4.tar.bz2 emacs-2ef037c0dd3510a51ad73fdead1ded09848166f4.zip |
Improve random bignum generation
* src/bignum.c (get_random_limb, get_random_limb_lim)
(get_random_bignum): New functions, for more-efficient
generation of random bignums without using Frem etc.
* src/fns.c (get_random_fixnum): New function.
(Frandom): Use it, and get_random_bignum.
Be consistent about signalling nonpositive integer arguments;
since zero is invalid, Qnatnump is not quite right here.
* src/sysdep.c (get_random_ulong): New function.
Diffstat (limited to 'src/bignum.h')
-rw-r--r-- | src/bignum.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/bignum.h b/src/bignum.h index 5f94ce850cf..de9ee17c027 100644 --- a/src/bignum.h +++ b/src/bignum.h @@ -51,6 +51,7 @@ extern void emacs_mpz_mul_2exp (mpz_t, mpz_t const, EMACS_INT) extern void emacs_mpz_pow_ui (mpz_t, mpz_t const, unsigned long) ARG_NONNULL ((1, 2)); extern double mpz_get_d_rounded (mpz_t const) ATTRIBUTE_CONST; +extern Lisp_Object get_random_bignum (struct Lisp_Bignum const *); INLINE_HEADER_BEGIN |