I had a quick look at the mpz_nextprime code. While I noticed the new code which is not yet enabled, it surprised me how naïve the current implementation is.<br><br>void<br>mpz_nextprime (mpz_ptr p, mpz_srcptr t)<br>{<br>&nbsp; mpz_add_ui (p, t, 1L);
<br>&nbsp; while (! mpz_probab_prime_p (p, 5))<br>&nbsp;&nbsp;&nbsp; mpz_add_ui (p, p, 1L);<br>}<br><br><br>You can easily get a 2x speedup just by doing:<br><br>void<br>mpz_nextprime (mpz_ptr p, mpz_srcptr t)<br>{<br>&nbsp; mpz_add_ui (p, t, 1L);
<br>&nbsp; mpz_setbit(p, 0);<br>&nbsp; while (! mpz_probab_prime_p (p, 5))<br>&nbsp;&nbsp;&nbsp; mpz_add_ui (p, p, 2L);<br>}<br><br>This probably is like it is for a reason, but I just wanted to give my input on this<br><br>Best Regards,<br>Rob Holmes
<br>