5656 returns sign(i - j)
5757 assumes i, j are normalised
5858*/
59- STATIC int mpn_cmp (const mpz_dig_t * idig , uint ilen , const mpz_dig_t * jdig , uint jlen ) {
59+ STATIC mp_int_t mpn_cmp (const mpz_dig_t * idig , mp_uint_t ilen , const mpz_dig_t * jdig , mp_uint_t jlen ) {
6060 if (ilen < jlen ) { return -1 ; }
6161 if (ilen > jlen ) { return 1 ; }
6262
6363 for (idig += ilen , jdig += ilen ; ilen > 0 ; -- ilen ) {
64- int cmp = * (-- idig ) - * (-- jdig );
64+ mp_int_t cmp = * (-- idig ) - * (-- jdig );
6565 if (cmp < 0 ) { return -1 ; }
6666 if (cmp > 0 ) { return 1 ; }
6767 }
@@ -74,9 +74,9 @@ STATIC int mpn_cmp(const mpz_dig_t *idig, uint ilen, const mpz_dig_t *jdig, uint
7474 assumes enough memory in i; assumes normalised j; assumes n > 0
7575 can have i, j pointing to same memory
7676*/
77- STATIC uint mpn_shl (mpz_dig_t * idig , mpz_dig_t * jdig , uint jlen , uint n ) {
78- uint n_whole = (n + DIG_SIZE - 1 ) / DIG_SIZE ;
79- uint n_part = n % DIG_SIZE ;
77+ STATIC mp_uint_t mpn_shl (mpz_dig_t * idig , mpz_dig_t * jdig , mp_uint_t jlen , mp_uint_t n ) {
78+ mp_uint_t n_whole = (n + DIG_SIZE - 1 ) / DIG_SIZE ;
79+ mp_uint_t n_part = n % DIG_SIZE ;
8080 if (n_part == 0 ) {
8181 n_part = DIG_SIZE ;
8282 }
@@ -87,7 +87,7 @@ STATIC uint mpn_shl(mpz_dig_t *idig, mpz_dig_t *jdig, uint jlen, uint n) {
8787
8888 // shift the digits
8989 mpz_dbl_dig_t d = 0 ;
90- for (uint i = jlen ; i > 0 ; i -- , idig -- , jdig -- ) {
90+ for (mp_uint_t i = jlen ; i > 0 ; i -- , idig -- , jdig -- ) {
9191 d |= * jdig ;
9292 * idig = (d >> (DIG_SIZE - n_part )) & DIG_MASK ;
9393 d <<= DIG_SIZE ;
@@ -113,9 +113,9 @@ STATIC uint mpn_shl(mpz_dig_t *idig, mpz_dig_t *jdig, uint jlen, uint n) {
113113 assumes enough memory in i; assumes normalised j; assumes n > 0
114114 can have i, j pointing to same memory
115115*/
116- STATIC uint mpn_shr (mpz_dig_t * idig , mpz_dig_t * jdig , uint jlen , uint n ) {
117- uint n_whole = n / DIG_SIZE ;
118- uint n_part = n % DIG_SIZE ;
116+ STATIC mp_uint_t mpn_shr (mpz_dig_t * idig , mpz_dig_t * jdig , mp_uint_t jlen , mp_uint_t n ) {
117+ mp_uint_t n_whole = n / DIG_SIZE ;
118+ mp_uint_t n_part = n % DIG_SIZE ;
119119
120120 if (n_whole >= jlen ) {
121121 return 0 ;
@@ -124,7 +124,7 @@ STATIC uint mpn_shr(mpz_dig_t *idig, mpz_dig_t *jdig, uint jlen, uint n) {
124124 jdig += n_whole ;
125125 jlen -= n_whole ;
126126
127- for (uint i = jlen ; i > 0 ; i -- , idig ++ , jdig ++ ) {
127+ for (mp_uint_t i = jlen ; i > 0 ; i -- , idig ++ , jdig ++ ) {
128128 mpz_dbl_dig_t d = * jdig ;
129129 if (i > 1 ) {
130130 d |= jdig [1 ] << DIG_SIZE ;
@@ -145,7 +145,7 @@ STATIC uint mpn_shr(mpz_dig_t *idig, mpz_dig_t *jdig, uint jlen, uint n) {
145145 assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
146146 can have i, j, k pointing to same memory
147147*/
148- STATIC uint mpn_add (mpz_dig_t * idig , const mpz_dig_t * jdig , uint jlen , const mpz_dig_t * kdig , uint klen ) {
148+ 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 ) {
149149 mpz_dig_t * oidig = idig ;
150150 mpz_dbl_dig_t carry = 0 ;
151151
@@ -175,7 +175,7 @@ STATIC uint mpn_add(mpz_dig_t *idig, const mpz_dig_t *jdig, uint jlen, const mpz
175175 assumes enough memory in i; assumes normalised j, k; assumes j >= k
176176 can have i, j, k pointing to same memory
177177*/
178- STATIC uint mpn_sub (mpz_dig_t * idig , const mpz_dig_t * jdig , uint jlen , const mpz_dig_t * kdig , uint klen ) {
178+ 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 ) {
179179 mpz_dig_t * oidig = idig ;
180180 mpz_dbl_dig_signed_t borrow = 0 ;
181181
@@ -204,7 +204,7 @@ STATIC uint mpn_sub(mpz_dig_t *idig, const mpz_dig_t *jdig, uint jlen, const mpz
204204 assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
205205 can have i, j, k pointing to same memory
206206*/
207- STATIC uint mpn_and (mpz_dig_t * idig , const mpz_dig_t * jdig , uint jlen , const mpz_dig_t * kdig , uint klen ) {
207+ STATIC mp_uint_t mpn_and (mpz_dig_t * idig , const mpz_dig_t * jdig , mp_uint_t jlen , const mpz_dig_t * kdig , mp_uint_t klen ) {
208208 mpz_dig_t * oidig = idig ;
209209
210210 for (; klen > 0 ; -- klen , ++ idig , ++ jdig , ++ kdig ) {
@@ -223,7 +223,7 @@ STATIC uint mpn_and(mpz_dig_t *idig, const mpz_dig_t *jdig, uint jlen, const mpz
223223 assumes enough memory in i; assumes normalised j, k
224224 can have i, j, k pointing to same memory
225225*/
226- STATIC uint mpn_and_neg (mpz_dig_t * idig , const mpz_dig_t * jdig , uint jlen , const mpz_dig_t * kdig , uint klen ) {
226+ 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 ) {
227227 mpz_dig_t * oidig = idig ;
228228 mpz_dbl_dig_t carry = 1 ;
229229
@@ -255,7 +255,7 @@ STATIC uint mpn_and_neg(mpz_dig_t *idig, const mpz_dig_t *jdig, uint jlen, const
255255 assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
256256 can have i, j, k pointing to same memory
257257*/
258- STATIC uint mpn_or (mpz_dig_t * idig , const mpz_dig_t * jdig , uint jlen , const mpz_dig_t * kdig , uint klen ) {
258+ 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 ) {
259259 mpz_dig_t * oidig = idig ;
260260
261261 jlen -= klen ;
@@ -276,7 +276,7 @@ STATIC uint mpn_or(mpz_dig_t *idig, const mpz_dig_t *jdig, uint jlen, const mpz_
276276 assumes enough memory in i; assumes normalised j, k; assumes jlen >= klen
277277 can have i, j, k pointing to same memory
278278*/
279- STATIC uint mpn_xor (mpz_dig_t * idig , const mpz_dig_t * jdig , uint jlen , const mpz_dig_t * kdig , uint klen ) {
279+ 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 ) {
280280 mpz_dig_t * oidig = idig ;
281281
282282 jlen -= klen ;
@@ -296,7 +296,7 @@ STATIC uint mpn_xor(mpz_dig_t *idig, const mpz_dig_t *jdig, uint jlen, const mpz
296296 returns number of digits in i
297297 assumes enough memory in i; assumes normalised i; assumes dmul != 0
298298*/
299- STATIC uint mpn_mul_dig_add_dig (mpz_dig_t * idig , uint ilen , mpz_dig_t dmul , mpz_dig_t dadd ) {
299+ 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 ) {
300300 mpz_dig_t * oidig = idig ;
301301 mpz_dbl_dig_t carry = dadd ;
302302
@@ -318,15 +318,15 @@ STATIC uint mpn_mul_dig_add_dig(mpz_dig_t *idig, uint ilen, mpz_dig_t dmul, mpz_
318318 assumes enough memory in i; assumes i is zeroed; assumes normalised j, k
319319 can have j, k point to same memory
320320*/
321- STATIC uint mpn_mul (mpz_dig_t * idig , mpz_dig_t * jdig , uint jlen , mpz_dig_t * kdig , uint klen ) {
321+ 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 ) {
322322 mpz_dig_t * oidig = idig ;
323- uint ilen = 0 ;
323+ mp_uint_t ilen = 0 ;
324324
325325 for (; klen > 0 ; -- klen , ++ idig , ++ kdig ) {
326326 mpz_dig_t * id = idig ;
327327 mpz_dbl_dig_t carry = 0 ;
328328
329- uint jl = jlen ;
329+ mp_uint_t jl = jlen ;
330330 for (mpz_dig_t * jd = jdig ; jl > 0 ; -- jl , ++ jd , ++ id ) {
331331 carry += * id + * jd * * kdig ; // will never overflow so long as DIG_SIZE <= WORD_SIZE / 2
332332 * id = carry & DIG_MASK ;
@@ -359,7 +359,7 @@ STATIC void mpn_div(mpz_dig_t *num_dig, mp_uint_t *num_len, mpz_dig_t *den_dig,
359359
360360 // handle simple cases
361361 {
362- int cmp = mpn_cmp (num_dig , * num_len , den_dig , den_len );
362+ mp_int_t cmp = mpn_cmp (num_dig , * num_len , den_dig , den_len );
363363 if (cmp == 0 ) {
364364 * num_len = 0 ;
365365 quo_dig [0 ] = 1 ;
@@ -507,7 +507,7 @@ void mpz_init_from_int(mpz_t *z, mp_int_t val) {
507507 mpz_set_from_int (z , val );
508508}
509509
510- void mpz_init_fixed_from_int (mpz_t * z , mpz_dig_t * dig , uint alloc , mp_int_t val ) {
510+ void mpz_init_fixed_from_int (mpz_t * z , mpz_dig_t * dig , mp_uint_t alloc , mp_int_t val ) {
511511 z -> neg = 0 ;
512512 z -> fixed_dig = 1 ;
513513 z -> alloc = alloc ;
@@ -540,7 +540,7 @@ mpz_t *mpz_from_ll(long long val) {
540540 return z ;
541541}
542542
543- mpz_t * mpz_from_str (const char * str , uint len , bool neg , uint base ) {
543+ mpz_t * mpz_from_str (const char * str , mp_uint_t len , bool neg , mp_uint_t base ) {
544544 mpz_t * z = mpz_zero ();
545545 mpz_set_from_str (z , str , len , neg , base );
546546 return z ;
@@ -553,7 +553,7 @@ void mpz_free(mpz_t *z) {
553553 }
554554}
555555
556- STATIC void mpz_need_dig (mpz_t * z , uint need ) {
556+ STATIC void mpz_need_dig (mpz_t * z , mp_uint_t need ) {
557557 if (need < MIN_ALLOC ) {
558558 need = MIN_ALLOC ;
559559 }
@@ -633,7 +633,7 @@ void mpz_set_from_ll(mpz_t *z, long long val) {
633633}
634634
635635// returns number of bytes from str that were processed
636- uint mpz_set_from_str (mpz_t * z , const char * str , uint len , bool neg , uint base ) {
636+ mp_uint_t mpz_set_from_str (mpz_t * z , const char * str , mp_uint_t len , bool neg , mp_uint_t base ) {
637637 assert (base < 36 );
638638
639639 const char * cur = str ;
@@ -649,8 +649,8 @@ uint mpz_set_from_str(mpz_t *z, const char *str, uint len, bool neg, uint base)
649649
650650 z -> len = 0 ;
651651 for (; cur < top ; ++ cur ) { // XXX UTF8 next char
652- //uint v = char_to_numeric(cur#); // XXX UTF8 get char
653- uint v = * cur ;
652+ //mp_uint_t v = char_to_numeric(cur#); // XXX UTF8 get char
653+ mp_uint_t v = * cur ;
654654 if ('0' <= v && v <= '9' ) {
655655 v -= '0' ;
656656 } else if ('A' <= v && v <= 'Z' ) {
@@ -689,8 +689,8 @@ bool mpz_is_even(const mpz_t *z) {
689689 return z -> len == 0 || (z -> dig [0 ] & 1 ) == 0 ;
690690}
691691
692- int mpz_cmp (const mpz_t * z1 , const mpz_t * z2 ) {
693- int cmp = z2 -> neg - z1 -> neg ;
692+ mp_int_t mpz_cmp (const mpz_t * z1 , const mpz_t * z2 ) {
693+ mp_int_t cmp = z2 -> neg - z1 -> neg ;
694694 if (cmp != 0 ) {
695695 return cmp ;
696696 }
@@ -704,8 +704,8 @@ int mpz_cmp(const mpz_t *z1, const mpz_t *z2) {
704704#if 0
705705// obsolete
706706// compares mpz with an integer that fits within DIG_SIZE bits
707- int mpz_cmp_sml_int (const mpz_t * z , mp_int_t sml_int ) {
708- int cmp ;
707+ mp_int_t mpz_cmp_sml_int (const mpz_t * z , mp_int_t sml_int ) {
708+ mp_int_t cmp ;
709709 if (z -> neg == 0 ) {
710710 if (sml_int < 0 ) return 1 ;
711711 if (sml_int == 0 ) {
@@ -856,10 +856,10 @@ void mpz_shr_inpl(mpz_t *dest, const mpz_t *lhs, mp_int_t rhs) {
856856 dest -> neg = lhs -> neg ;
857857 if (dest -> neg ) {
858858 // arithmetic shift right, rounding to negative infinity
859- uint n_whole = rhs / DIG_SIZE ;
860- uint n_part = rhs % DIG_SIZE ;
859+ mp_uint_t n_whole = rhs / DIG_SIZE ;
860+ mp_uint_t n_part = rhs % DIG_SIZE ;
861861 mpz_dig_t round_up = 0 ;
862- for (uint i = 0 ; i < lhs -> len && i < n_whole ; i ++ ) {
862+ for (mp_uint_t i = 0 ; i < lhs -> len && i < n_whole ; i ++ ) {
863863 if (lhs -> dig [i ] != 0 ) {
864864 round_up = 1 ;
865865 break ;
@@ -1284,41 +1284,36 @@ mp_float_t mpz_as_float(const mpz_t *i) {
12841284}
12851285#endif
12861286
1287- uint mpz_as_str_size (const mpz_t * i , uint base ) {
1287+ mp_uint_t mpz_as_str_size (const mpz_t * i , mp_uint_t base , const char * prefix , char comma ) {
12881288 if (base < 2 || base > 32 ) {
12891289 return 0 ;
12901290 }
12911291
1292- return i -> len * DIG_SIZE / log_base2_floor [base ] + 2 + 1 ; // +1 for null byte termination
1293- }
1294-
1295- uint mpz_as_str_size_formatted (const mpz_t * i , uint base , const char * prefix , char comma ) {
1296- if (base < 2 || base > 32 ) {
1297- return 0 ;
1298- }
1299-
1300- uint num_digits = i -> len * DIG_SIZE / log_base2_floor [base ] + 1 ;
1301- uint num_commas = comma ? num_digits / 3 : 0 ;
1302- uint prefix_len = prefix ? strlen (prefix ) : 0 ;
1292+ mp_uint_t num_digits = i -> len * DIG_SIZE / log_base2_floor [base ] + 1 ;
1293+ mp_uint_t num_commas = comma ? num_digits / 3 : 0 ;
1294+ mp_uint_t prefix_len = prefix ? strlen (prefix ) : 0 ;
13031295
13041296 return num_digits + num_commas + prefix_len + 2 ; // +1 for sign, +1 for null byte
13051297}
13061298
1307- char * mpz_as_str (const mpz_t * i , uint base ) {
1308- char * s = m_new (char , mpz_as_str_size (i , base ));
1309- mpz_as_str_inpl (i , base , "" , 'a' , 0 , s );
1299+ #if 0
1300+ this function is unused
1301+ char * mpz_as_str (const mpz_t * i , mp_uint_t base ) {
1302+ char * s = m_new (char , mpz_as_str_size (i , base , NULL , '\0' ));
1303+ mpz_as_str_inpl (i , base , NULL , 'a' , '\0' , s );
13101304 return s ;
13111305}
1306+ #endif
13121307
13131308// assumes enough space as calculated by mpz_as_str_size
13141309// returns length of string, not including null byte
1315- uint mpz_as_str_inpl (const mpz_t * i , uint base , const char * prefix , char base_char , char comma , char * str ) {
1310+ 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 ) {
13161311 if (str == NULL || base < 2 || base > 32 ) {
13171312 str [0 ] = 0 ;
13181313 return 0 ;
13191314 }
13201315
1321- uint ilen = i -> len ;
1316+ mp_uint_t ilen = i -> len ;
13221317
13231318 char * s = str ;
13241319 if (ilen == 0 ) {
0 commit comments