summaryrefslogtreecommitdiff
path: root/mpz/2fac_ui.c
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2012-04-10 22:32:14 +0200
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2012-04-10 22:32:14 +0200
commitd7389a5703515cf98e40742e7d4324f8de52251f (patch)
tree973cdaeb210b51a4d661febc06902095ba64622c /mpz/2fac_ui.c
parent08ac199c3a87eb84fa220d68370425d03b701f37 (diff)
downloadgmp-d7389a5703515cf98e40742e7d4324f8de52251f.tar.gz
mpz/2fac_ui.c: Cosmetic change.
Diffstat (limited to 'mpz/2fac_ui.c')
-rw-r--r--mpz/2fac_ui.c7
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 };