handling an mpz-"array"
Peter Linder
peter.linder at bfh.ch
Fri Oct 31 13:48:43 CET 2008
Hello
I have some issues handling multiple mpz_t's and I will try to explain
it in the following lines:
As I could read in the gmp.h, the __mpz_struct struct is defined like
this:
typedef struct
{
int _mp_alloc;
int _mp_size;
mp_limb_t *_mp_d;
} __mpz_struct;
also there is the typedef declaration for mpz_t:
typedef __mpz_struct mpz_t[1];
now I tried to allocate to store several mpz_t's:
static mpz_t **storage;
storage = (mpz_t **)malloc(sizeof(mpz_t)*numberOfSlotsToStore);
and assign some initialized mpz_t's:
*preSlots = (mpz_t *)x;
*(preSlots+1) = (mpz_t *)y;
*(preSlots+2) = (mpz_t *)z;
now I would like to use to access them again to make further
callculations:
e.g. : mpz_set(z,(mpz_t *)*preSlots);
what actually seems to work, but raises the following warning (gcc:
i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)):
"warning: passing argument 2 of '__gmpz_set' from incompatible pointer
type"
As I am no C expert I wanted to ask if this is something I should take
care about or not?
I would be happy to know if there is a 'better' handling of multiple
mpz_t's.
Best wishes
Peter
More information about the gmp-discuss
mailing list