Skip to content

Commit

Permalink
Return correct value for nextprime with negative arg on GMP < 4.3
Browse files Browse the repository at this point in the history
  • Loading branch information
dvarrazzo committed Apr 22, 2011
1 parent cb40b00 commit 9f24053
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
1 change: 0 additions & 1 deletion src/pmpz_arith.c
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ PGMP_PG_FUNCTION(pmpz_ ## op) \
PMPZ_UN(neg, PMPZ_NO_CHECK) PMPZ_UN(neg, PMPZ_NO_CHECK)
PMPZ_UN(abs, PMPZ_NO_CHECK) PMPZ_UN(abs, PMPZ_NO_CHECK)
PMPZ_UN(sqrt, PMPZ_CHECK_NONEG) PMPZ_UN(sqrt, PMPZ_CHECK_NONEG)
PMPZ_UN(nextprime, PMPZ_NO_CHECK)
PMPZ_UN(com, PMPZ_NO_CHECK) PMPZ_UN(com, PMPZ_NO_CHECK)




Expand Down
23 changes: 23 additions & 0 deletions src/pmpz_theor.c
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -39,6 +39,29 @@ PGMP_PG_FUNCTION(pmpz_probab_prime_p)
PG_RETURN_INT32(mpz_probab_prime_p(z1, reps)); PG_RETURN_INT32(mpz_probab_prime_p(z1, reps));
} }


PGMP_PG_FUNCTION(pmpz_nextprime)
{
const mpz_t z1;
mpz_t zf;

PGMP_GETARG_MPZ(z1, 0);

mpz_init(zf);

#if __GMP_MP_RELEASE < 40300
if (UNLIKELY(mpz_sgn(z1) < 0)) {
mpz_set_ui(zf, 2);
}
else
#endif
{
mpz_nextprime(zf, z1);
}

PGMP_RETURN_MPZ(zf);
}


PGMP_PG_FUNCTION(pmpz_gcdext) PGMP_PG_FUNCTION(pmpz_gcdext)
{ {
const mpz_t z1; const mpz_t z1;
Expand Down

0 comments on commit 9f24053

Please sign in to comment.