mpf_get_str limitation?

Zimmermann Paul Paul.Zimmermann at
Fri Feb 1 16:43:27 CET 2013


it seems mpf_get_str cannot deal with numbers of 2^31 bits or more, i.e.,
about 650 million digits, even on a 64-bit computer:

barbecue% cat bug.c
#include <stdio.h>
#include <stdlib.h>
#include "gmp.h"

main (int argc, char *argv[])
  mpf_t f;
  char *s;
  mp_exp_t e;
  mpf_init2 (f, 2147483585);
  mpf_random2 (f, 1, 0);
  s = mpf_get_str (NULL, &e, 10, 0, f);
  printf ("f=%s*10^%ld\n", s, e);
  mpf_clear (f);
  return 0;
barbecue% gcc bug.c -lgmp
barbecue% ./a.out
GNU MP: Cannot allocate memory (size=5553023287876900142)
Abort (core dumped)


More information about the gmp-bugs mailing list