summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exp3.c17
-rw-r--r--sin_cos.c18
2 files changed, 15 insertions, 20 deletions
diff --git a/exp3.c b/exp3.c
index 2a5737290..6383f4df4 100644
--- a/exp3.c
+++ b/exp3.c
@@ -28,8 +28,6 @@ MA 02111-1307, USA. */
/*#define DEBUG */
/*#define TIMING */
-int mpfr_extract(mpz_ptr , mpfr_srcptr , int );
-
int
#if __STDC__
mylog2(int x)
@@ -207,6 +205,7 @@ mp_rnd_t rnd_mode;
ttt = MPFR_EXP(x_copy);
}
realprec = MPFR_PREC(y)+logn;
+ mpz_init (uk);
while (!good){
Prec = realprec+shift+2+shift_x;
k = (int) ceil(log
@@ -219,7 +218,7 @@ mp_rnd_t rnd_mode;
twopoweri = BITS_PER_MP_LIMB;
if (k <= prec_x) iter = k; else iter= prec_x;
for(i = 0; i <= iter; i++){
- mpfr_extract(uk,x_copy,i);
+ mpfr_extract (uk, x_copy, i);
#ifdef DEBUG
mpz_out_str(stderr,2, uk);
fprintf(stderr, "---\n");
@@ -232,7 +231,7 @@ mp_rnd_t rnd_mode;
#ifdef TIMING
for (dummy = 0; dummy < 30; dummy++)
#endif
- mpfr_exp_rational(t,uk,twopoweri - ttt, k - i + 1);
+ mpfr_exp_rational (t, uk, twopoweri - ttt, k - i + 1);
else
{
/* cas particulier : on est oblige de faire les calculs avec x/2^.
@@ -240,7 +239,7 @@ mp_rnd_t rnd_mode;
#ifdef TIMING
for (dummy = 0; dummy < 30; dummy++)
#endif
- mpfr_exp_rational(t,uk, shift + twopoweri - ttt, k+1);
+ mpfr_exp_rational (t, uk, shift + twopoweri - ttt, k+1);
for (loop= 0 ; loop < shift; loop++)
mpfr_mul(t,t,t,GMP_RNDD);
@@ -255,8 +254,7 @@ mp_rnd_t rnd_mode;
fprintf(stderr, "\n ii --- ii \n");
#endif
twopoweri <<= 1;
- mpz_clear(uk);
- }
+ }
for (loop= 0 ; loop < shift_x; loop++)
mpfr_mul(tmp,tmp,tmp,GMP_RNDD);
mpfr_clear(t);
@@ -268,9 +266,10 @@ mp_rnd_t rnd_mode;
mpfr_clear(tmp);
realprec += 3*logn;
}
- }
+ }
+ mpz_clear (uk);
mpfr_clear(x_copy);
- return 0;
+ return 0;
}
diff --git a/sin_cos.c b/sin_cos.c
index 283c56a41..83b233083 100644
--- a/sin_cos.c
+++ b/sin_cos.c
@@ -38,7 +38,6 @@ MA 02111-1307, USA. */
#undef C2
#undef GENERIC
-
#undef A
#undef B
#define C
@@ -47,10 +46,6 @@ MA 02111-1307, USA. */
#define GENERIC mpfr_cos_aux
#include "generic.c"
-
-
-int mpfr_extract(mpz_ptr , mpfr_srcptr , int );
-
#define shift (BITS_PER_MP_LIMB / 2)
int
@@ -118,6 +113,7 @@ mp_rnd_t rnd_mode;
if (logn < 2) logn = 2;
factor = logn;
realprec = target_prec + logn;
+ mpz_init (uk);
while (!good) {
Prec = realprec + 2*shift + 2 + shift_x + factor;
k = (int) ceil(log
@@ -135,7 +131,7 @@ mp_rnd_t rnd_mode;
twopoweri = BITS_PER_MP_LIMB;
if (k <= prec_x) iter = k; else iter= prec_x;
for(i = 0; i <= iter; i++){
- mpfr_extract(uk,x_copy,i);
+ mpfr_extract (uk, x_copy, i);
if (i)
{
mpz_mul (square, uk, uk);
@@ -150,14 +146,14 @@ mp_rnd_t rnd_mode;
{
/* cas particulier : on est oblige de faire les calculs avec x/2^.
puis elever au carre (plus rapide) */
- mpz_set(square,uk);
+ mpz_set (square, uk);
mpz_mul(square, square, square);
mpz_neg(square, square);
/* pour l'instant, shift = 0 ... */
/* ATTENTION, IL FAUT AUSSI MULTIPLIER LE DENOMINATEUR */
mpfr_sin_aux(t_sin,square, 2*(shift + twopoweri - ttt) + 2, k+1);
mpfr_cos_aux(t_cos,square, 2*(shift + twopoweri - ttt) + 2, k+1);
- mpfr_set_z(tmp,uk,GMP_RNDD);
+ mpfr_set_z (tmp, uk, GMP_RNDD);
mpfr_mul(t_sin, t_sin, tmp,GMP_RNDD);
/* LA AUSSI, IL FAUT PENSER A DECALER DE twopoweri - ttt) */
mpfr_div_2exp(t_sin,t_sin, twopoweri - ttt + shift, GMP_RNDD);
@@ -174,7 +170,6 @@ mp_rnd_t rnd_mode;
mpfr_sub_ui(t_cos, t_cos, 1, GMP_RNDD);
}
}
- mpz_clear(uk);
/* on utilise cos(a+b) = cos a cos b - sin a sin b
sin(a+b) = sin a cos b + cos a sin b */
/* Donnees :
@@ -235,8 +230,9 @@ mp_rnd_t rnd_mode;
mpfr_clear(tmp_cos);
mpfr_clear(inter);
}
- mpz_clear(square);
- mpfr_clear(x_copy);
+ mpz_clear (uk);
+ mpz_clear (square);
+ mpfr_clear (x_copy);
return 1; /* inexact result */
}