summaryrefslogtreecommitdiff
path: root/src/bignum.h
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2022-03-16 17:21:55 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2022-03-16 17:52:41 -0700
commit2ef037c0dd3510a51ad73fdead1ded09848166f4 (patch)
treea44593bba870cf70add2d0615efd07e3193926d9 /src/bignum.h
parent31a2428d6f2ca792af18b43ceca5cec1ecce862f (diff)
downloademacs-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.h1
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