Re: mpz_powm_ui () for 5.1.2

2017-03-07 Thread Niels Möller
Marco Bodrato  writes:

> Does "mingw32" means unsigned long is a 32-bit type?
> You should use an mpz variable to store values exceeding 2^32...

mingw means the microsoft windows abi. And on microsoft windows, "long"
is always 32 bits, even on x86_64 (not sure about windows on arm64,
though, I haven't bothered to ever try compiling anything for windows
phones).

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677.
Internet email is subject to wholesale government surveillance.
___
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs


Re: mpz_powm_ui () for 5.1.2

2017-03-07 Thread Marco Bodrato

Ciao,

Il 2017-03-08 02:17 shen lixing ha scritto:

I installed MinGW, then  'mingw-get install mingw32-gmp' , got the gmp
5.1.2 properly.


The last release of the library is 6.1.2 .


unsigned long long c = 10307e7 - 1;  // change c,start point



  mpz_set_ui(b,c);
  mpz_mul_ui(b,b,c);
  mpz_powm_ui(d,a,c-1,b );


Look carefully at the documentation of the three mpz*_ui functions you 
use.

They take an _unsigned long_ as their _ui argument.
You pass an _unsigned long long_ variable, the compiler implicitly 
casts.


Does "mingw32" means unsigned long is a 32-bit type?
You should use an mpz variable to store values exceeding 2^32...

Regards,
m

--
http://bodrato.it/papers/
___
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs