summaryrefslogtreecommitdiff
path: root/agm.c
diff options
context:
space:
mode:
authorboldo <boldo@280ebfd0-de03-0410-8827-d642c229c3f4>1999-07-07 08:00:09 +0000
committerboldo <boldo@280ebfd0-de03-0410-8827-d642c229c3f4>1999-07-07 08:00:09 +0000
commitaccc9a0b7bf7ea937184f7a9ce59c99982ada020 (patch)
tree01c8da392b14da17af94c64f85453fb8797b0082 /agm.c
parente44b355242a0d4f62c0594dad17bee74d03f9d9e (diff)
downloadmpfr-accc9a0b7bf7ea937184f7a9ce59c99982ada020.tar.gz
using sqrt3
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@335 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'agm.c')
-rw-r--r--agm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/agm.c b/agm.c
index a2e791538..ad992fb74 100644
--- a/agm.c
+++ b/agm.c
@@ -91,15 +91,15 @@ mpfr_agm(r, a, b, rnd_mode)
eq=0;
err=ceil((3.0/2.0*log((double)p)/log(2.0)+1.0)*exp(-(double)p*log(2.0))+3.0*exp(-2.0*(double)p*uo*log(2.0)/(vo-uo)));
- if(p-err-1<=q) {
- p=q+err+2;
+ if(p-err-3<=q) {
+ p=q+err+4;
err=ceil((3.0/2.0*log((double)p)/log(2.0)+1.0)*exp(-(double)p*log(2.0))+3.0*exp(-2.0*(double)p*uo*log(2.0)/(vo-uo)));
}
/* Calculus of un and vn */
while (eq<=p-2) {
mpfr_mul(tmp,u,v,GMP_RNDN);
- mpfr_sqrt(tmpu,tmp,GMP_RNDN);
+ mpfr_sqrt3(tmpu,tmp,GMP_RNDN);
mpfr_add(tmp,u,v,GMP_RNDN);
mpfr_div_2exp(tmpv,tmp,1,GMP_RNDN);
mpfr_set(u,tmpu,GMP_RNDN);