QtBigInt
Loading...
Searching...
No Matches
mini-gmp.h
Go to the documentation of this file.
1/* mini-gmp, a minimalistic implementation of a GNU GMP subset.
2
3Copyright 2011-2015 Free Software Foundation, Inc.
4
5This file is part of the GNU MP Library.
6
7The GNU MP Library is free software; you can redistribute it and/or modify
8it under the terms of either:
9
10 * the GNU Lesser General Public License as published by the Free
11 Software Foundation; either version 3 of the License, or (at your
12 option) any later version.
13
14or
15
16 * the GNU General Public License as published by the Free Software
17 Foundation; either version 2 of the License, or (at your option) any
18 later version.
19
20or both in parallel, as here.
21
22The GNU MP Library is distributed in the hope that it will be useful, but
23WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
24or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
25for more details.
26
27You should have received copies of the GNU General Public License and the
28GNU Lesser General Public License along with the GNU MP Library. If not,
29see https://www.gnu.org/licenses/. */
30
31/* About mini-gmp: This is a minimal implementation of a subset of the
32 GMP interface. It is intended for inclusion into applications which
33 have modest bignums needs, as a fallback when the real GMP library
34 is not installed.
35
36 This file defines the public interface. */
37
38#ifndef MINI_GMP
39#define MINI_GMP
40
41/* For size_t */
42#include <stddef.h>
43
44#if defined (__cplusplus)
45extern "C" {
46#endif
47
48#define UN_USED(X) (void)X
49
50void mp_set_memory_functions (void *(*) (size_t),
51 void *(*) (void *, size_t, size_t),
52 void (*) (void *, size_t));
53
54void mp_get_memory_functions (void *(**) (size_t),
55 void *(**) (void *, size_t, size_t),
56 void (**) (void *, size_t));
57
58typedef unsigned long long uIntMpz;
59typedef long long intMpz;
60
64
66typedef const mp_limb_t *mp_srcptr;
67
68typedef struct
69{
70 int _mp_alloc; /* Number of *limbs* allocated and pointed
71 to by the _mp_d field. */
72 int _mp_size; /* abs(_mp_size) is the number of limbs the
73 last field points to. If _mp_size is
74 negative this is a negative number. */
75 mp_limb_t *_mp_d; /* Pointer to the limbs. */
77
79
81typedef const __mpz_struct *mpz_srcptr;
82
83extern const int mp_bits_per_limb;
84
88
91
95
99
103
109
112
115
118
120
122#define mpn_invert_limb(x) mpn_invert_3by2 ((x), 0)
123
124size_t mpn_get_str (unsigned char *, int, mp_ptr, mp_size_t);
125mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
126
127void mpz_init (mpz_t);
129void mpz_clear (mpz_t);
130
131#define mpz_odd_p(z) (((z)->_mp_size != 0) & (int) (z)->_mp_d[0])
132#define mpz_even_p(z) (! mpz_odd_p (z))
133
134int mpz_sgn (const mpz_t);
135int mpz_cmp_si (const mpz_t, intMpz);
136int mpz_cmp_ui (const mpz_t, uIntMpz);
137int mpz_cmp (const mpz_t, const mpz_t);
138int mpz_cmpabs_ui (const mpz_t, uIntMpz);
139int mpz_cmpabs (const mpz_t, const mpz_t);
140int mpz_cmp_d (const mpz_t, double);
141int mpz_cmpabs_d (const mpz_t, double);
142
143void mpz_abs (mpz_t, const mpz_t);
144void mpz_neg (mpz_t, const mpz_t);
145void mpz_swap (mpz_t, mpz_t);
146
147void mpz_add_ui (mpz_t, const mpz_t, uIntMpz);
148void mpz_add (mpz_t, const mpz_t, const mpz_t);
149void mpz_sub_ui (mpz_t, const mpz_t, uIntMpz);
150void mpz_ui_sub (mpz_t, uIntMpz, const mpz_t);
151void mpz_sub (mpz_t, const mpz_t, const mpz_t);
152
153void mpz_mul_si (mpz_t, const mpz_t, intMpz);
154void mpz_mul_ui (mpz_t, const mpz_t, uIntMpz);
155void mpz_mul (mpz_t, const mpz_t, const mpz_t);
156void mpz_mul_2exp (mpz_t, const mpz_t, mp_bitcnt_t);
157void mpz_addmul_ui (mpz_t, const mpz_t, uIntMpz);
158void mpz_addmul (mpz_t, const mpz_t, const mpz_t);
159void mpz_submul_ui (mpz_t, const mpz_t, uIntMpz);
160void mpz_submul (mpz_t, const mpz_t, const mpz_t);
161
162void mpz_cdiv_qr (mpz_t, mpz_t, const mpz_t, const mpz_t);
163void mpz_fdiv_qr (mpz_t, mpz_t, const mpz_t, const mpz_t);
164void mpz_tdiv_qr (mpz_t, mpz_t, const mpz_t, const mpz_t);
165void mpz_cdiv_q (mpz_t, const mpz_t, const mpz_t);
166void mpz_fdiv_q (mpz_t, const mpz_t, const mpz_t);
167void mpz_tdiv_q (mpz_t, const mpz_t, const mpz_t);
168void mpz_cdiv_r (mpz_t, const mpz_t, const mpz_t);
169void mpz_fdiv_r (mpz_t, const mpz_t, const mpz_t);
170void mpz_tdiv_r (mpz_t, const mpz_t, const mpz_t);
171
178
179void mpz_mod (mpz_t, const mpz_t, const mpz_t);
180
181void mpz_divexact (mpz_t, const mpz_t, const mpz_t);
182
183int mpz_divisible_p (const mpz_t, const mpz_t);
184int mpz_congruent_p (const mpz_t, const mpz_t, const mpz_t);
185
198
200
201void mpz_divexact_ui (mpz_t, const mpz_t, uIntMpz);
202
203int mpz_divisible_ui_p (const mpz_t, uIntMpz);
204
206void mpz_gcd (mpz_t, const mpz_t, const mpz_t);
207void mpz_gcdext (mpz_t, mpz_t, mpz_t, const mpz_t, const mpz_t);
208void mpz_lcm_ui (mpz_t, const mpz_t, uIntMpz);
209void mpz_lcm (mpz_t, const mpz_t, const mpz_t);
210int mpz_invert (mpz_t, const mpz_t, const mpz_t);
211
212void mpz_sqrtrem (mpz_t, mpz_t, const mpz_t);
213void mpz_sqrt (mpz_t, const mpz_t);
214int mpz_perfect_square_p (const mpz_t);
215
216void mpz_pow_ui (mpz_t, const mpz_t, uIntMpz);
218void mpz_powm (mpz_t, const mpz_t, const mpz_t, const mpz_t);
219void mpz_powm_ui (mpz_t, const mpz_t, uIntMpz, const mpz_t);
220
221void mpz_rootrem (mpz_t, mpz_t, const mpz_t, uIntMpz);
222int mpz_root (mpz_t, const mpz_t, uIntMpz);
223
224void mpz_fac_ui (mpz_t, uIntMpz);
226
227int mpz_probab_prime_p (const mpz_t, int);
228
229int mpz_tstbit (const mpz_t, mp_bitcnt_t);
233
234void mpz_com (mpz_t, const mpz_t);
235void mpz_and (mpz_t, const mpz_t, const mpz_t);
236void mpz_ior (mpz_t, const mpz_t, const mpz_t);
237void mpz_xor (mpz_t, const mpz_t, const mpz_t);
238
240mp_bitcnt_t mpz_hamdist (const mpz_t, const mpz_t);
243
244int mpz_fits_slong_p (const mpz_t);
245int mpz_fits_ulong_p (const mpz_t);
246intMpz mpz_get_si (const mpz_t);
247uIntMpz mpz_get_ui (const mpz_t);
248double mpz_get_d (const mpz_t);
249size_t mpz_size (const mpz_t);
251
258
259#define MPZ_ROINIT_N(xp, xs) {{0, (xs),(xp) }}
260
261void mpz_set_si (mpz_t, intMpz);
262void mpz_set_ui (mpz_t, uIntMpz);
263void mpz_set (mpz_t, const mpz_t);
264void mpz_set_d (mpz_t, double);
265
268void mpz_init_set (mpz_t, const mpz_t);
269void mpz_init_set_d (mpz_t, double);
270
271size_t mpz_sizeinbase (const mpz_t, int);
272char *mpz_get_str (char *, int, const mpz_t);
273int mpz_set_str (mpz_t, const char *, int);
274int mpz_init_set_str (mpz_t, const char *, int);
275
276/* This long list taken from gmp.h. */
277/* For reference, "defined(EOF)" cannot be used here. In g++ 2.95.4,
278 <iostream> defines EOF but not FILE. */
279#if defined (FILE) \
280 || defined (H_STDIO) \
281 || defined (_H_STDIO) /* AIX */ \
282 || defined (_STDIO_H) /* glibc, Sun, SCO */ \
283 || defined (_STDIO_H_) /* BSD, OSF */ \
284 || defined (__STDIO_H) /* Borland */ \
285 || defined (__STDIO_H__) /* IRIX */ \
286 || defined (_STDIO_INCLUDED) /* HPUX */ \
287 || defined (__dj_include_stdio_h_) /* DJGPP */ \
288 || defined (_FILE_DEFINED) /* Microsoft */ \
289 || defined (__STDIO__) /* Apple MPW MrC */ \
290 || defined (_MSL_STDIO_H) /* Metrowerks */ \
291 || defined (_STDIO_H_INCLUDED) /* QNX4 */ \
292 || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ \
293 || defined (__STDIO_LOADED) /* VMS */
294size_t mpz_out_str (FILE *, int, const mpz_t);
295#endif
296
297void mpz_import (mpz_t, size_t, int, size_t, int, size_t, const void *);
298void *mpz_export (void *, size_t *, int, size_t, int, size_t, const mpz_t);
299
300#if defined (__cplusplus)
301}
302#endif
303#endif /* MINI_GMP */
size_t mpz_out_str(FILE *stream, int base, const mpz_t x)
Definition: mini-gmp.c:4238
size_t mpz_size(const mpz_t)
Definition: mini-gmp.c:1579
mp_bitcnt_t mpn_popcount(mp_srcptr, mp_size_t)
Definition: mini-gmp.c:3865
void mpn_copyi(mp_ptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:344
void mpz_cdiv_q(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2305
void mpz_ui_sub(mpz_t, uIntMpz, const mpz_t)
Definition: mini-gmp.c:1937
int mpz_cmp_si(const mpz_t, intMpz)
Definition: mini-gmp.c:1786
void mpz_divexact(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2507
int mpz_cmpabs(const mpz_t, const mpz_t)
Definition: mini-gmp.c:1837
int mpz_init_set_str(mpz_t, const char *, int)
Definition: mini-gmp.c:4231
uIntMpz mp_limb_t
Definition: mini-gmp.h:61
mp_limb_t * mp_ptr
Definition: mini-gmp.h:65
uIntMpz mpz_cdiv_ui(const mpz_t, uIntMpz)
Definition: mini-gmp.c:2645
const __mpz_struct * mpz_srcptr
Definition: mini-gmp.h:81
void mpz_sqrt(mpz_t, const mpz_t)
Definition: mini-gmp.c:3300
void mpz_divexact_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2669
void mpz_rootrem(mpz_t, mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:3219
mp_bitcnt_t mpz_popcount(const mpz_t)
Definition: mini-gmp.c:3877
void mpz_init_set_d(mpz_t, double)
Definition: mini-gmp.c:1689
int mpz_divisible_ui_p(const mpz_t, uIntMpz)
Definition: mini-gmp.c:2675
uIntMpz mpz_cdiv_r_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2629
mp_bitcnt_t mpz_hamdist(const mpz_t, const mpz_t)
Definition: mini-gmp.c:3890
mp_limb_t mpn_add(mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:438
void mpz_abs(mpz_t, const mpz_t)
Definition: mini-gmp.c:1844
void mpz_fdiv_q_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2477
unsigned long long uIntMpz
Definition: mini-gmp.h:58
uIntMpz mpz_tdiv_ui(const mpz_t, uIntMpz)
Definition: mini-gmp.c:2657
int mpz_tstbit(const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:3499
void mpz_gcdext(mpz_t, mpz_t, mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2825
void mpz_add(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:1993
void * mpz_export(void *, size_t *, int, size_t, int, size_t, const mpz_t)
Definition: mini-gmp.c:4329
void mpz_cdiv_q_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2471
void mpz_set_d(mpz_t, double)
Definition: mini-gmp.c:1638
intMpz mp_size_t
Definition: mini-gmp.h:62
uIntMpz mpz_fdiv_q_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2617
uIntMpz mpz_cdiv_q_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2611
int mpn_zero_p(mp_srcptr, mp_size_t)
Definition: mini-gmp.c:387
void mpz_addmul_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2130
int mpn_cmp(mp_srcptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:359
void mpz_setbit(mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:3594
void mpz_init(mpz_t)
Definition: mini-gmp.c:1425
mp_bitcnt_t mpz_scan0(const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:3977
uIntMpz mpz_tdiv_qr_ui(mpz_t, mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2605
mp_bitcnt_t mpn_scan0(mp_srcptr, mp_bitcnt_t)
Definition: mini-gmp.c:700
double mpz_get_d(const mpz_t)
Definition: mini-gmp.c:1696
mp_bitcnt_t mpn_scan1(mp_srcptr, mp_bitcnt_t)
Definition: mini-gmp.c:690
void mpz_tdiv_q_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2483
int mpz_fits_ulong_p(const mpz_t)
Definition: mini-gmp.c:1555
mp_limb_t mpn_lshift(mp_ptr, mp_srcptr, mp_size_t, unsigned int)
Definition: mini-gmp.c:613
mp_limb_t mpz_getlimbn(const mpz_t, mp_size_t)
Definition: mini-gmp.c:1585
void mpz_submul_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2140
void mpz_clear(mpz_t)
Definition: mini-gmp.c:1450
int mpz_cmpabs_ui(const mpz_t, uIntMpz)
Definition: mini-gmp.c:1828
mp_limb_t mpn_rshift(mp_ptr, mp_srcptr, mp_size_t, unsigned int)
Definition: mini-gmp.c:643
mp_ptr mpz_limbs_write(mpz_t, mp_size_t)
Definition: mini-gmp.c:1613
mp_size_t mpn_set_str(mp_ptr, const unsigned char *, size_t, int)
Definition: mini-gmp.c:1403
mp_limb_t mpn_invert_3by2(mp_limb_t, mp_limb_t)
Definition: mini-gmp.c:739
void mp_set_memory_functions(void *(*)(size_t), void *(*)(void *, size_t, size_t), void(*)(void *, size_t))
void mpz_addmul(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2150
mp_limb_t mpn_neg(mp_ptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:717
void mpz_fdiv_r(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2329
void mpz_add_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:1919
void mpz_tdiv_r_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2501
void mpz_cdiv_r_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2489
void mpz_tdiv_qr(mpz_t, mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2299
void mpz_and(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:3634
uIntMpz mpz_tdiv_q_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2623
void mpz_lcm(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:3007
mp_srcptr mpz_limbs_read(mpz_srcptr)
Definition: mini-gmp.c:1600
void mpz_tdiv_r(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2335
intMpz mpz_get_si(const mpz_t)
Definition: mini-gmp.c:1563
void mpz_realloc2(mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:1594
uIntMpz mpz_fdiv_ui(const mpz_t, uIntMpz)
Definition: mini-gmp.c:2651
void mpz_limbs_finish(mpz_t, mp_size_t)
Definition: mini-gmp.c:1619
__mpz_struct mpz_t[1]
Definition: mini-gmp.h:78
int mpz_cmp_ui(const mpz_t, uIntMpz)
Definition: mini-gmp.c:1801
void mpz_fdiv_qr(mpz_t, mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2293
void mpz_fdiv_q(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2311
void mpz_mul_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2033
void mpz_ui_pow_ui(mpz_t, uIntMpz, uIntMpz)
Definition: mini-gmp.c:3099
uIntMpz mpz_gcd_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2726
void mpz_fac_ui(mpz_t, uIntMpz)
Definition: mini-gmp.c:3350
const mp_limb_t * mp_srcptr
Definition: mini-gmp.h:66
mp_ptr mpz_limbs_modify(mpz_t, mp_size_t)
Definition: mini-gmp.c:1606
int mpz_cmpabs_d(const mpz_t, double)
Definition: mini-gmp.c:1718
uIntMpz mpz_mod_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2663
void mpz_lcm_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:3028
mp_limb_t mpn_sub_1(mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)
Definition: mini-gmp.c:451
void mpz_cdiv_qr(mpz_t, mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2287
mp_size_t mpn_sqrtrem(mp_ptr, mp_ptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:3325
void mpz_gcd(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2762
void mpz_sub(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2006
mp_limb_t mpn_sub(mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:490
void mpz_swap(mpz_t, mpz_t)
Definition: mini-gmp.c:1858
void mpz_init_set_ui(mpz_t, uIntMpz)
Definition: mini-gmp.c:1528
uIntMpz mpz_cdiv_qr_ui(mpz_t, mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2593
void mpz_cdiv_r(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2323
long long intMpz
Definition: mini-gmp.h:59
uIntMpz mpz_fdiv_qr_ui(mpz_t, mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2599
void mpz_submul(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2160
int mpn_perfect_square_p(mp_srcptr, mp_size_t)
Definition: mini-gmp.c:3315
void mpz_fdiv_r_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2495
__mpz_struct * mpz_ptr
Definition: mini-gmp.h:80
void mpn_mul_n(mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:601
void mp_get_memory_functions(void *(**)(size_t), void *(**)(void *, size_t, size_t), void(**)(void *, size_t))
mp_limb_t mpn_add_n(mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:419
int mpz_cmp(const mpz_t, const mpz_t)
Definition: mini-gmp.c:1814
void mpz_init_set_si(mpz_t, intMpz)
Definition: mini-gmp.c:1521
void mpz_powm(mpz_t, const mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:3106
size_t mpn_get_str(unsigned char *, int, mp_ptr, mp_size_t)
Definition: mini-gmp.c:1312
void mpz_init2(mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:1437
int mpz_sgn(const mpz_t)
Definition: mini-gmp.c:1780
void mpz_mul(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2058
mp_limb_t mpn_mul_1(mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)
Definition: mini-gmp.c:503
void mpz_ior(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:3706
int mpz_perfect_square_p(const mpz_t)
Definition: mini-gmp.c:3306
void mpz_mul_2exp(mpz_t, const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:2096
void mpz_sqrtrem(mpz_t, mpz_t, const mpz_t)
Definition: mini-gmp.c:3294
char * mpz_get_str(char *, int, const mpz_t)
Definition: mini-gmp.c:4062
mp_limb_t mpn_add_1(mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)
Definition: mini-gmp.c:400
int mpz_divisible_p(const mpz_t, const mpz_t)
Definition: mini-gmp.c:2513
void mpz_com(mpz_t, const mpz_t)
Definition: mini-gmp.c:3627
uIntMpz mpz_fdiv_r_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2634
void mpn_zero(mp_ptr, mp_size_t)
Definition: mini-gmp.c:393
int mpz_cmp_d(const mpz_t, double)
Definition: mini-gmp.c:1759
void mpz_clrbit(mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:3606
int mpz_fits_slong_p(const mpz_t)
Definition: mini-gmp.c:1542
void mpz_mul_si(mpz_t, const mpz_t, intMpz)
Definition: mini-gmp.c:2021
uIntMpz mp_bitcnt_t
Definition: mini-gmp.h:63
int mpz_probab_prime_p(const mpz_t, int)
Definition: mini-gmp.c:3413
int mpz_invert(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:3043
void mpz_neg(mpz_t, const mpz_t)
Definition: mini-gmp.c:1851
uIntMpz mpz_get_ui(const mpz_t)
Definition: mini-gmp.c:1573
void mpz_set_si(mpz_t, intMpz)
Definition: mini-gmp.c:1480
const int mp_bits_per_limb
Definition: mini-gmp.c:241
size_t mpz_sizeinbase(const mpz_t, int)
Definition: mini-gmp.c:4009
void mpz_tdiv_q(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2317
void mpz_mod(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2341
void mpz_import(mpz_t, size_t, int, size_t, int, size_t, const void *)
Definition: mini-gmp.c:4261
int mpz_set_str(mpz_t, const char *, int)
Definition: mini-gmp.c:4127
mp_limb_t mpn_mul(mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:578
void mpn_com(mp_ptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:710
void mpz_xor(mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:3779
mp_limb_t mpn_submul_1(mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)
Definition: mini-gmp.c:552
void mpz_powm_ui(mpz_t, const mpz_t, uIntMpz, const mpz_t)
Definition: mini-gmp.c:3211
mp_limb_t mpn_sub_n(mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:472
void mpz_combit(mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:3618
void mpz_init_set(mpz_t, const mpz_t)
Definition: mini-gmp.c:1535
uIntMpz mpz_tdiv_r_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:2639
mp_bitcnt_t mpz_scan1(const mpz_t, mp_bitcnt_t)
Definition: mini-gmp.c:3941
void mpz_pow_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:3078
void mpz_set_ui(mpz_t, uIntMpz)
Definition: mini-gmp.c:1492
void mpz_bin_uiui(mpz_t, uIntMpz, uIntMpz)
Definition: mini-gmp.c:3358
mpz_srcptr mpz_roinit_n(mpz_t, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:1627
void mpz_set(mpz_t, const mpz_t)
Definition: mini-gmp.c:1504
mp_limb_t mpn_addmul_1(mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)
Definition: mini-gmp.c:526
void mpn_copyd(mp_ptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:352
int mpz_root(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:3279
void mpn_sqr(mp_ptr, mp_srcptr, mp_size_t)
Definition: mini-gmp.c:607
void mpz_sub_ui(mpz_t, const mpz_t, uIntMpz)
Definition: mini-gmp.c:1928
int mpz_congruent_p(const mpz_t, const mpz_t, const mpz_t)
Definition: mini-gmp.c:2519
int _mp_alloc
Definition: mini-gmp.h:70
int _mp_size
Definition: mini-gmp.h:72
mp_limb_t * _mp_d
Definition: mini-gmp.h:75