Skip to content

Commit dcdcc43

Browse files
committed
py/mpz: Convert mp_uint_t to size_t where appropriate.
1 parent 4e3bac2 commit dcdcc43

2 files changed

Lines changed: 40 additions & 40 deletions

File tree

py/mpz.c

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
returns sign(i - j)
5454
assumes i, j are normalised
5555
*/
56-
STATIC int mpn_cmp(const mpz_dig_t *idig, mp_uint_t ilen, const mpz_dig_t *jdig, mp_uint_t jlen) {
56+
STATIC int mpn_cmp(const mpz_dig_t *idig, size_t ilen, const mpz_dig_t *jdig, size_t jlen) {
5757
if (ilen < jlen) { return -1; }
5858
if (ilen > jlen) { return 1; }
5959

@@ -71,7 +71,7 @@ STATIC int mpn_cmp(const mpz_dig_t *idig, mp_uint_t ilen, const mpz_dig_t *jdig,
7171
assumes enough memory in i; assumes normalised j; assumes n > 0
7272
can have i, j pointing to same memory
7373
*/
74-
STATIC mp_uint_t mpn_shl(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mp_uint_t n) {
74+
STATIC size_t mpn_shl(mpz_dig_t *idig, mpz_dig_t *jdig, size_t jlen, mp_uint_t n) {
7575
mp_uint_t n_whole = (n + DIG_SIZE - 1) / DIG_SIZE;
7676
mp_uint_t n_part = n % DIG_SIZE;
7777
if (n_part == 0) {
@@ -84,7 +84,7 @@ STATIC mp_uint_t mpn_shl(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mp_ui
8484

8585
// shift the digits
8686
mpz_dbl_dig_t d = 0;
87-
for (mp_uint_t i = jlen; i > 0; i--, idig--, jdig--) {
87+
for (size_t i = jlen; i > 0; i--, idig--, jdig--) {
8888
d |= *jdig;
8989
*idig = (d >> (DIG_SIZE - n_part)) & DIG_MASK;
9090
d <<= DIG_SIZE;
@@ -110,7 +110,7 @@ STATIC mp_uint_t mpn_shl(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mp_ui
110110
assumes enough memory in i; assumes normalised j; assumes n > 0
111111
can have i, j pointing to same memory
112112
*/
113-
STATIC mp_uint_t mpn_shr(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mp_uint_t n) {
113+
STATIC size_t mpn_shr(mpz_dig_t *idig, mpz_dig_t *jdig, size_t jlen, mp_uint_t n) {
114114
mp_uint_t n_whole = n / DIG_SIZE;
115115
mp_uint_t n_part = n % DIG_SIZE;
116116

@@ -121,7 +121,7 @@ STATIC mp_uint_t mpn_shr(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mp_ui
121121
jdig += n_whole;
122122
jlen -= n_whole;
123123

124-
for (mp_uint_t i = jlen; i > 0; i--, idig++, jdig++) {
124+
for (size_t i = jlen; i > 0; i--, idig++, jdig++) {
125125
mpz_dbl_dig_t d = *jdig;
126126
if (i > 1) {
127127
d |= (mpz_dbl_dig_t)jdig[1] << DIG_SIZE;
@@ -142,7 +142,7 @@ STATIC mp_uint_t mpn_shr(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mp_ui
142142
assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
143143
can have i, j, k pointing to same memory
144144
*/
145-
STATIC mp_uint_t mpn_add(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen) {
145+
STATIC size_t mpn_add(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen) {
146146
mpz_dig_t *oidig = idig;
147147
mpz_dbl_dig_t carry = 0;
148148

@@ -172,7 +172,7 @@ STATIC mp_uint_t mpn_add(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen,
172172
assumes enough memory in i; assumes normalised j, k; assumes j >= k
173173
can have i, j, k pointing to same memory
174174
*/
175-
STATIC mp_uint_t mpn_sub(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen) {
175+
STATIC size_t mpn_sub(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen) {
176176
mpz_dig_t *oidig = idig;
177177
mpz_dbl_dig_signed_t borrow = 0;
178178

@@ -196,7 +196,7 @@ STATIC mp_uint_t mpn_sub(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen,
196196
return idig + 1 - oidig;
197197
}
198198

199-
STATIC mp_uint_t mpn_remove_trailing_zeros(mpz_dig_t *oidig, mpz_dig_t *idig) {
199+
STATIC size_t mpn_remove_trailing_zeros(mpz_dig_t *oidig, mpz_dig_t *idig) {
200200
for (--idig; idig >= oidig && *idig == 0; --idig) {
201201
}
202202
return idig + 1 - oidig;
@@ -209,7 +209,7 @@ STATIC mp_uint_t mpn_remove_trailing_zeros(mpz_dig_t *oidig, mpz_dig_t *idig) {
209209
assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen (jlen argument not needed)
210210
can have i, j, k pointing to same memory
211211
*/
212-
STATIC mp_uint_t mpn_and(mpz_dig_t *idig, const mpz_dig_t *jdig, const mpz_dig_t *kdig, mp_uint_t klen) {
212+
STATIC size_t mpn_and(mpz_dig_t *idig, const mpz_dig_t *jdig, const mpz_dig_t *kdig, size_t klen) {
213213
mpz_dig_t *oidig = idig;
214214

215215
for (; klen > 0; --klen, ++idig, ++jdig, ++kdig) {
@@ -230,7 +230,7 @@ STATIC mp_uint_t mpn_and(mpz_dig_t *idig, const mpz_dig_t *jdig, const mpz_dig_t
230230
assumes enough memory in i; assumes normalised j, k; assumes length j >= length k
231231
can have i, j, k pointing to same memory
232232
*/
233-
STATIC mp_uint_t mpn_and_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen,
233+
STATIC size_t mpn_and_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen,
234234
mpz_dbl_dig_t carryi, mpz_dbl_dig_t carryj, mpz_dbl_dig_t carryk) {
235235
mpz_dig_t *oidig = idig;
236236
mpz_dig_t imask = (0 == carryi) ? 0 : DIG_MASK;
@@ -261,7 +261,7 @@ STATIC mp_uint_t mpn_and_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t j
261261
assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
262262
can have i, j, k pointing to same memory
263263
*/
264-
STATIC mp_uint_t mpn_or(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen) {
264+
STATIC size_t mpn_or(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen) {
265265
mpz_dig_t *oidig = idig;
266266

267267
jlen -= klen;
@@ -291,7 +291,7 @@ STATIC mp_uint_t mpn_or(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen,
291291

292292
#if MICROPY_OPT_MPZ_BITWISE
293293

294-
STATIC mp_uint_t mpn_or_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen,
294+
STATIC size_t mpn_or_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen,
295295
mpz_dbl_dig_t carryj, mpz_dbl_dig_t carryk) {
296296
mpz_dig_t *oidig = idig;
297297
mpz_dbl_dig_t carryi = 1;
@@ -321,7 +321,7 @@ STATIC mp_uint_t mpn_or_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jl
321321

322322
#else
323323

324-
STATIC mp_uint_t mpn_or_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen,
324+
STATIC size_t mpn_or_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen,
325325
mpz_dbl_dig_t carryi, mpz_dbl_dig_t carryj, mpz_dbl_dig_t carryk) {
326326
mpz_dig_t *oidig = idig;
327327
mpz_dig_t imask = (0 == carryi) ? 0 : DIG_MASK;
@@ -353,7 +353,7 @@ STATIC mp_uint_t mpn_or_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jl
353353
assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
354354
can have i, j, k pointing to same memory
355355
*/
356-
STATIC mp_uint_t mpn_xor(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen) {
356+
STATIC size_t mpn_xor(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen) {
357357
mpz_dig_t *oidig = idig;
358358

359359
jlen -= klen;
@@ -380,7 +380,7 @@ STATIC mp_uint_t mpn_xor(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen,
380380
assumes enough memory in i; assumes normalised j, k; assumes length j >= length k
381381
can have i, j, k pointing to same memory
382382
*/
383-
STATIC mp_uint_t mpn_xor_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen, const mpz_dig_t *kdig, mp_uint_t klen,
383+
STATIC size_t mpn_xor_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, size_t jlen, const mpz_dig_t *kdig, size_t klen,
384384
mpz_dbl_dig_t carryi, mpz_dbl_dig_t carryj, mpz_dbl_dig_t carryk) {
385385
mpz_dig_t *oidig = idig;
386386

@@ -405,7 +405,7 @@ STATIC mp_uint_t mpn_xor_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t j
405405
returns number of digits in i
406406
assumes enough memory in i; assumes normalised i; assumes dmul != 0
407407
*/
408-
STATIC mp_uint_t mpn_mul_dig_add_dig(mpz_dig_t *idig, mp_uint_t ilen, mpz_dig_t dmul, mpz_dig_t dadd) {
408+
STATIC size_t mpn_mul_dig_add_dig(mpz_dig_t *idig, size_t ilen, mpz_dig_t dmul, mpz_dig_t dadd) {
409409
mpz_dig_t *oidig = idig;
410410
mpz_dbl_dig_t carry = dadd;
411411

@@ -427,15 +427,15 @@ STATIC mp_uint_t mpn_mul_dig_add_dig(mpz_dig_t *idig, mp_uint_t ilen, mpz_dig_t
427427
assumes enough memory in i; assumes i is zeroed; assumes normalised j, k
428428
can have j, k point to same memory
429429
*/
430-
STATIC mp_uint_t mpn_mul(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mpz_dig_t *kdig, mp_uint_t klen) {
430+
STATIC size_t mpn_mul(mpz_dig_t *idig, mpz_dig_t *jdig, size_t jlen, mpz_dig_t *kdig, size_t klen) {
431431
mpz_dig_t *oidig = idig;
432-
mp_uint_t ilen = 0;
432+
size_t ilen = 0;
433433

434434
for (; klen > 0; --klen, ++idig, ++kdig) {
435435
mpz_dig_t *id = idig;
436436
mpz_dbl_dig_t carry = 0;
437437

438-
mp_uint_t jl = jlen;
438+
size_t jl = jlen;
439439
for (mpz_dig_t *jd = jdig; jl > 0; --jl, ++jd, ++id) {
440440
carry += (mpz_dbl_dig_t)*id + (mpz_dbl_dig_t)*jd * (mpz_dbl_dig_t)*kdig; // will never overflow so long as DIG_SIZE <= 8*sizeof(mpz_dbl_dig_t)/2
441441
*id = carry & DIG_MASK;
@@ -458,7 +458,7 @@ STATIC mp_uint_t mpn_mul(mpz_dig_t *idig, mpz_dig_t *jdig, mp_uint_t jlen, mpz_d
458458
assumes quo_dig has enough memory (as many digits as num)
459459
assumes quo_dig is filled with zeros
460460
*/
461-
STATIC void mpn_div(mpz_dig_t *num_dig, mp_uint_t *num_len, const mpz_dig_t *den_dig, mp_uint_t den_len, mpz_dig_t *quo_dig, mp_uint_t *quo_len) {
461+
STATIC void mpn_div(mpz_dig_t *num_dig, size_t *num_len, const mpz_dig_t *den_dig, size_t den_len, mpz_dig_t *quo_dig, size_t *quo_len) {
462462
mpz_dig_t *orig_num_dig = num_dig;
463463
mpz_dig_t *orig_quo_dig = quo_dig;
464464
mpz_dig_t norm_shift = 0;
@@ -661,7 +661,7 @@ void mpz_init_from_int(mpz_t *z, mp_int_t val) {
661661
mpz_set_from_int(z, val);
662662
}
663663

664-
void mpz_init_fixed_from_int(mpz_t *z, mpz_dig_t *dig, mp_uint_t alloc, mp_int_t val) {
664+
void mpz_init_fixed_from_int(mpz_t *z, mpz_dig_t *dig, size_t alloc, mp_int_t val) {
665665
z->neg = 0;
666666
z->fixed_dig = 1;
667667
z->alloc = alloc;
@@ -705,7 +705,7 @@ mpz_t *mpz_from_float(mp_float_t val) {
705705
}
706706
#endif
707707

708-
mpz_t *mpz_from_str(const char *str, mp_uint_t len, bool neg, mp_uint_t base) {
708+
mpz_t *mpz_from_str(const char *str, size_t len, bool neg, mp_uint_t base) {
709709
mpz_t *z = mpz_zero();
710710
mpz_set_from_str(z, str, len, neg, base);
711711
return z;
@@ -719,7 +719,7 @@ STATIC void mpz_free(mpz_t *z) {
719719
}
720720
}
721721

722-
STATIC void mpz_need_dig(mpz_t *z, mp_uint_t need) {
722+
STATIC void mpz_need_dig(mpz_t *z, size_t need) {
723723
if (need < MIN_ALLOC) {
724724
need = MIN_ALLOC;
725725
}
@@ -873,7 +873,7 @@ typedef uint32_t mp_float_int_t;
873873
#endif
874874

875875
// returns number of bytes from str that were processed
876-
mp_uint_t mpz_set_from_str(mpz_t *z, const char *str, mp_uint_t len, bool neg, mp_uint_t base) {
876+
size_t mpz_set_from_str(mpz_t *z, const char *str, size_t len, bool neg, mp_uint_t base) {
877877
assert(base <= 36);
878878

879879
const char *cur = str;
@@ -909,7 +909,7 @@ mp_uint_t mpz_set_from_str(mpz_t *z, const char *str, mp_uint_t len, bool neg, m
909909
return cur - str;
910910
}
911911

912-
void mpz_set_from_bytes(mpz_t *z, bool big_endian, mp_uint_t len, const byte *buf) {
912+
void mpz_set_from_bytes(mpz_t *z, bool big_endian, size_t len, const byte *buf) {
913913
int delta = 1;
914914
if (big_endian) {
915915
buf += len - 1;
@@ -1151,7 +1151,7 @@ void mpz_shr_inpl(mpz_t *dest, const mpz_t *lhs, mp_uint_t rhs) {
11511151
mp_uint_t n_whole = rhs / DIG_SIZE;
11521152
mp_uint_t n_part = rhs % DIG_SIZE;
11531153
mpz_dig_t round_up = 0;
1154-
for (mp_uint_t i = 0; i < lhs->len && i < n_whole; i++) {
1154+
for (size_t i = 0; i < lhs->len && i < n_whole; i++) {
11551155
if (lhs->dig[i] != 0) {
11561156
round_up = 1;
11571157
break;
@@ -1624,7 +1624,7 @@ bool mpz_as_uint_checked(const mpz_t *i, mp_uint_t *value) {
16241624
}
16251625

16261626
// writes at most len bytes to buf (so buf should be zeroed before calling)
1627-
void mpz_as_bytes(const mpz_t *z, bool big_endian, mp_uint_t len, byte *buf) {
1627+
void mpz_as_bytes(const mpz_t *z, bool big_endian, size_t len, byte *buf) {
16281628
byte *b = buf;
16291629
if (big_endian) {
16301630
b += len;
@@ -1633,7 +1633,7 @@ void mpz_as_bytes(const mpz_t *z, bool big_endian, mp_uint_t len, byte *buf) {
16331633
int bits = 0;
16341634
mpz_dbl_dig_t d = 0;
16351635
mpz_dbl_dig_t carry = 1;
1636-
for (mp_uint_t zlen = z->len; zlen > 0; --zlen) {
1636+
for (size_t zlen = z->len; zlen > 0; --zlen) {
16371637
bits += DIG_SIZE;
16381638
d = (d << DIG_SIZE) | *zdig++;
16391639
for (; bits >= 8; bits -= 8, d >>= 8) {
@@ -1685,7 +1685,7 @@ char *mpz_as_str(const mpz_t *i, mp_uint_t base) {
16851685

16861686
// assumes enough space as calculated by mp_int_format_size
16871687
// returns length of string, not including null byte
1688-
mp_uint_t mpz_as_str_inpl(const mpz_t *i, mp_uint_t base, const char *prefix, char base_char, char comma, char *str) {
1688+
size_t mpz_as_str_inpl(const mpz_t *i, mp_uint_t base, const char *prefix, char base_char, char comma, char *str) {
16891689
if (str == NULL) {
16901690
return 0;
16911691
}
@@ -1694,7 +1694,7 @@ mp_uint_t mpz_as_str_inpl(const mpz_t *i, mp_uint_t base, const char *prefix, ch
16941694
return 0;
16951695
}
16961696

1697-
mp_uint_t ilen = i->len;
1697+
size_t ilen = i->len;
16981698

16991699
char *s = str;
17001700
if (ilen == 0) {

py/mpz.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@ typedef int8_t mpz_dbl_dig_signed_t;
8787
#define MPZ_NUM_DIG_FOR_LL ((sizeof(long long) * 8 + MPZ_DIG_SIZE - 1) / MPZ_DIG_SIZE)
8888

8989
typedef struct _mpz_t {
90-
mp_uint_t neg : 1;
91-
mp_uint_t fixed_dig : 1;
92-
mp_uint_t alloc : BITS_PER_WORD - 2;
93-
mp_uint_t len;
90+
size_t neg : 1;
91+
size_t fixed_dig : 1;
92+
size_t alloc : 8 * sizeof(size_t) - 2;
93+
size_t len;
9494
mpz_dig_t *dig;
9595
} mpz_t;
9696

@@ -99,7 +99,7 @@ typedef struct _mpz_t {
9999

100100
void mpz_init_zero(mpz_t *z);
101101
void mpz_init_from_int(mpz_t *z, mp_int_t val);
102-
void mpz_init_fixed_from_int(mpz_t *z, mpz_dig_t *dig, mp_uint_t dig_alloc, mp_int_t val);
102+
void mpz_init_fixed_from_int(mpz_t *z, mpz_dig_t *dig, size_t dig_alloc, mp_int_t val);
103103
void mpz_deinit(mpz_t *z);
104104

105105
void mpz_set(mpz_t *dest, const mpz_t *src);
@@ -108,8 +108,8 @@ void mpz_set_from_ll(mpz_t *z, long long i, bool is_signed);
108108
#if MICROPY_PY_BUILTINS_FLOAT
109109
void mpz_set_from_float(mpz_t *z, mp_float_t src);
110110
#endif
111-
mp_uint_t mpz_set_from_str(mpz_t *z, const char *str, mp_uint_t len, bool neg, mp_uint_t base);
112-
void mpz_set_from_bytes(mpz_t *z, bool big_endian, mp_uint_t len, const byte *buf);
111+
size_t mpz_set_from_str(mpz_t *z, const char *str, size_t len, bool neg, mp_uint_t base);
112+
void mpz_set_from_bytes(mpz_t *z, bool big_endian, size_t len, const byte *buf);
113113

114114
bool mpz_is_zero(const mpz_t *z);
115115
int mpz_cmp(const mpz_t *lhs, const mpz_t *rhs);
@@ -133,11 +133,11 @@ static inline size_t mpz_max_num_bits(const mpz_t *z) { return z->len * MPZ_DIG_
133133
mp_int_t mpz_hash(const mpz_t *z);
134134
bool mpz_as_int_checked(const mpz_t *z, mp_int_t *value);
135135
bool mpz_as_uint_checked(const mpz_t *z, mp_uint_t *value);
136-
void mpz_as_bytes(const mpz_t *z, bool big_endian, mp_uint_t len, byte *buf);
136+
void mpz_as_bytes(const mpz_t *z, bool big_endian, size_t len, byte *buf);
137137
#if MICROPY_PY_BUILTINS_FLOAT
138138
mp_float_t mpz_as_float(const mpz_t *z);
139139
#endif
140-
mp_uint_t mpz_as_str_size(const mpz_t *i, mp_uint_t base, const char *prefix, char comma);
141-
mp_uint_t mpz_as_str_inpl(const mpz_t *z, mp_uint_t base, const char *prefix, char base_char, char comma, char *str);
140+
size_t mpz_as_str_size(const mpz_t *i, mp_uint_t base, const char *prefix, char comma);
141+
size_t mpz_as_str_inpl(const mpz_t *z, mp_uint_t base, const char *prefix, char base_char, char comma, char *str);
142142

143143
#endif // __MICROPY_INCLUDED_PY_MPZ_H__

0 commit comments

Comments
 (0)