]> git.eshelyaron.com Git - emacs.git/commitdiff
* doc/lispref/internals.texi (Module Values): Add a GMP example
authorPhilipp Stephani <phst@google.com>
Wed, 24 Apr 2019 11:54:54 +0000 (13:54 +0200)
committerPhilipp Stephani <phst@google.com>
Wed, 24 Apr 2019 11:54:54 +0000 (13:54 +0200)
doc/lispref/internals.texi

index 3e6488a5ccf002f38ad5e199b4bf0519ccab58d1..5ae71afbef25b33d903a3eaf6f96b3e6b72d6452 100644 (file)
@@ -1543,6 +1543,31 @@ integral object.  After you have finished using
 or similar.
 @end deftypefn
 
+The following example uses GMP to calculate the next probable prime
+after a given integer:
+
+@example
+#include <assert.h>
+#include <gmp.h>
+
+#define EMACS_MODULE_GMP
+#include <emacs-module.h>
+
+static emacs_value
+next_prime (emacs_env *env, ptrdiff_t nargs, emacs_value *args,
+            void *data)
+@{
+  assert (nargs == 1);
+  emacs_mpz p;
+  mpz_init (p.value);
+  env->extract_big_integer (env, args[0], &p);
+  mpz_nextprime (p.value, p.value);
+  emacs_value result = env->make_big_integer (env, &p);
+  mpz_clear (p.value);
+  return result;
+@}
+@end example
+
 The @acronym{API} does not provide functions to manipulate Lisp data
 structures, for example, create lists with @code{cons} and @code{list}
 (@pxref{Building Lists}), extract list members with @code{car} and