diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2012-04-10 22:32:14 +0200 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2012-04-10 22:32:14 +0200 |
commit | d7389a5703515cf98e40742e7d4324f8de52251f (patch) | |
tree | 973cdaeb210b51a4d661febc06902095ba64622c /mpz/2fac_ui.c | |
parent | 08ac199c3a87eb84fa220d68370425d03b701f37 (diff) | |
download | gmp-d7389a5703515cf98e40742e7d4324f8de52251f.tar.gz |
mpz/2fac_ui.c: Cosmetic change.
Diffstat (limited to 'mpz/2fac_ui.c')
-rw-r--r-- | mpz/2fac_ui.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mpz/2fac_ui.c b/mpz/2fac_ui.c index f1b35e04a..436f15499 100644 --- a/mpz/2fac_ui.c +++ b/mpz/2fac_ui.c @@ -55,10 +55,9 @@ mpz_2fac_ui (mpz_ptr x, unsigned long n) if ((n & 1) == 0) { /* n is even, n = 2k, (2k)!! = k! 2^k */ mp_limb_t count; - popc_limb (count, n); - count = n - count; - n >>= 1; - mpz_oddfac_1 (x, n, 0); + popc_limb (count, n); /* popc(n) == popc(k) */ + count = n - count; /* n - popc(n) == k + k - popc(k) */ + mpz_oddfac_1 (x, n >> 1, 0); mpz_mul_2exp (x, x, count); } else { /* n is odd */ static const mp_limb_t tabled[] = { ONE_LIMB_ODD_DOUBLEFACTORIAL_TABLE }; |