72 |
#define RA_void |
#define RA_void |
73 |
#define RR_void |
#define RR_void |
74 |
|
|
75 |
|
#undef mpz_get_strp |
76 |
|
#define mpz_get_strp __gmpz_get_strp |
77 |
|
|
78 |
|
static char * |
79 |
|
__gmpz_get_strp(char **a,int b,mpz_t c) {return __gmpz_get_str(*a,b,c);} |
80 |
|
|
81 |
/* GMP_WRAPPERS: the gmp library uses heap allocation in places for |
/* GMP_WRAPPERS: the gmp library uses heap allocation in places for |
82 |
temporary storage. This greatly complicates relocatable bignum |
temporary storage. This greatly complicates relocatable bignum |
83 |
allocation in GCL, which is a big winner in terms of performance. |
allocation in GCL, which is a big winner in terms of performance. |
142 |
MEM_GMP_CALL(2,void,mpz_set_si,1,mpz_t,long int) |
MEM_GMP_CALL(2,void,mpz_set_si,1,mpz_t,long int) |
143 |
MEM_GMP_CALL(1,double,mpz_get_d,0,mpz_t) |
MEM_GMP_CALL(1,double,mpz_get_d,0,mpz_t) |
144 |
MEM_GMP_CALL(1,gmp_lint,mpz_get_si,0,mpz_t) |
MEM_GMP_CALL(1,gmp_lint,mpz_get_si,0,mpz_t) |
145 |
MEM_GMP_CALL(3,gmp_char_star,mpz_get_str,0,char *,int,mpz_t) |
MEM_GMP_CALL(3,gmp_char_star,__gmpz_get_strp,0,char **,int,mpz_t) |
146 |
MEM_GMP_CALL(1,int,mpz_fits_sint_p,0,mpz_t) |
MEM_GMP_CALL(1,int,mpz_fits_sint_p,0,mpz_t) |
147 |
MEM_GMP_CALL(1,int,mpz_fits_slong_p,0,mpz_t) |
MEM_GMP_CALL(1,int,mpz_fits_slong_p,0,mpz_t) |
148 |
MEM_GMP_CALL(1,gmp_ulint,mpz_popcount,0,mpz_t) |
MEM_GMP_CALL(1,gmp_ulint,mpz_popcount,0,mpz_t) |
154 |
MEM_GMP_CALL(3,void,mpz_divexact,1,mpz_t,mpz_t,mpz_t) |
MEM_GMP_CALL(3,void,mpz_divexact,1,mpz_t,mpz_t,mpz_t) |
155 |
MEM_GMP_CALL(3,void,mpz_divexact_ui,1,mpz_t,mpz_t,unsigned long int) |
MEM_GMP_CALL(3,void,mpz_divexact_ui,1,mpz_t,mpz_t,unsigned long int) |
156 |
|
|
157 |
|
|
158 |
/* FIXME: find a way to have this follow the convention in gmp.h*/ |
/* FIXME: find a way to have this follow the convention in gmp.h*/ |
159 |
|
|
160 |
#define __gmpz_urandomm m__gmpz_urandomm |
#define __gmpz_urandomm m__gmpz_urandomm |
184 |
#define __gmpz_set_si m__gmpz_set_si |
#define __gmpz_set_si m__gmpz_set_si |
185 |
#define __gmpz_get_d m__gmpz_get_d |
#define __gmpz_get_d m__gmpz_get_d |
186 |
#define __gmpz_get_si m__gmpz_get_si |
#define __gmpz_get_si m__gmpz_get_si |
187 |
#define __gmpz_get_str m__gmpz_get_str |
/* #define __gmpz_get_str m__gmpz_get_str */ |
188 |
|
#define __gmpz_get_strp m__gmpz_get_strp |
189 |
#define __gmpz_fits_sint_p m__gmpz_fits_sint_p |
#define __gmpz_fits_sint_p m__gmpz_fits_sint_p |
190 |
#define __gmpz_fits_slong_p m__gmpz_fits_slong_p |
#define __gmpz_fits_slong_p m__gmpz_fits_slong_p |
191 |
#define __gmpz_popcount m__gmpz_popcount |
#define __gmpz_popcount m__gmpz_popcount |