diff options
author | Philipp Stephani <phst@google.com> | 2019-04-24 13:54:54 +0200 |
---|---|---|
committer | Philipp Stephani <phst@google.com> | 2019-04-24 13:54:54 +0200 |
commit | b6d8d34aede02a6af7a614f32b86292ee4ba1757 (patch) | |
tree | c6cdbf818eb3c749a1937e1e198fd564fb5de630 /doc | |
parent | c4bacb1215bfdf058b374312256c27eaea1304a4 (diff) | |
download | emacs-b6d8d34aede02a6af7a614f32b86292ee4ba1757.tar.gz |
* doc/lispref/internals.texi (Module Values): Add a GMP example
Diffstat (limited to 'doc')
-rw-r--r-- | doc/lispref/internals.texi | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 3e6488a5ccf..5ae71afbef2 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi @@ -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 |