summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sin_cos.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sin_cos.c b/src/sin_cos.c
index ac148cd42..a7c44620b 100644
--- a/src/sin_cos.c
+++ b/src/sin_cos.c
@@ -350,10 +350,12 @@ sin_bs_aux (mpz_t Q0, mpz_t S0, mpz_t C0, mpz_srcptr p, mpfr_prec_t r,
which reduces to T[k] = (2*i+2)*(2*i+3)*2^r-pp,
Q[k] = (2*i)*(2*i+1)*(2*i+2)*(2*i+3). */
log2_nb_terms[k] = 1;
- mpz_set_ui (Q[k], (2 * i + 2) * (2 * i + 3));
+ mpz_set_ui (Q[k], 2 * i + 2);
+ mpz_mul_ui (Q[k], Q[k], 2 * i + 3);
mpz_mul_2exp (T[k], Q[k], r);
mpz_sub (T[k], T[k], pp);
- mpz_mul_ui (Q[k], Q[k], (2 * i) * (2 * i + 1));
+ mpz_mul_ui (Q[k], Q[k], 2 * i);
+ mpz_mul_ui (Q[k], Q[k], 2 * i + 1);
/* the next term of the series is divided by Q[k] and multiplied
by pp^2/2^(2r), thus the mult. factor < 1/2^mult[k] */
mult[k] = mpz_sizeinbase (Q[k], 2) + 2 * r - size_ptoj[1] - 1;