summaryrefslogtreecommitdiff
path: root/tan.c
diff options
context:
space:
mode:
authorpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2005-06-02 15:15:02 +0000
committerpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2005-06-02 15:15:02 +0000
commitf1253ebc9649d9bcf732cfcd6760fc10453b9334 (patch)
tree8ebca7be0770c9240880a956def75353ad9d3b3f /tan.c
parentd03898d2ba8f45cb375bbf9250321f2fb34b1085 (diff)
downloadmpfr-f1253ebc9649d9bcf732cfcd6760fc10453b9334.tar.gz
Add support for MPFR_GROUP functions.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@3602 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tan.c')
-rw-r--r--tan.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/tan.c b/tan.c
index 78e38b0ee..a8a0166e1 100644
--- a/tan.c
+++ b/tan.c
@@ -31,6 +31,7 @@ mpfr_tan (mpfr_ptr y, mpfr_srcptr x, mp_rnd_t rnd_mode)
mpfr_t s, c;
MPFR_ZIV_DECL (loop);
MPFR_SAVE_EXPO_DECL (expo);
+ MPFR_GROUP_DECL (group);
MPFR_LOG_FUNC (("x[%#R]=%R rnd=%d", x, x, rnd_mode),
("y[%#R]=%R inexact=%d", y, y, inexact));
@@ -64,9 +65,7 @@ mpfr_tan (mpfr_ptr y, mpfr_srcptr x, mp_rnd_t rnd_mode)
else
m += -MPFR_GET_EXP (x);
- mpfr_init2 (s, m);
- mpfr_init2 (c, m);
-
+ MPFR_GROUP_INIT_2 (group, m, s, c);
MPFR_ZIV_INIT (loop, m);
for (;;)
{
@@ -78,15 +77,11 @@ mpfr_tan (mpfr_ptr y, mpfr_srcptr x, mp_rnd_t rnd_mode)
if (MPFR_LIKELY (MPFR_CAN_ROUND (c, m-1, precy, rnd_mode)))
break;
MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (s, m);
- mpfr_set_prec (c, m);
+ MPFR_GROUP_REPREC_2 (group, m, s, c);
}
MPFR_ZIV_FREE (loop);
-
inexact = mpfr_set (y, c, rnd_mode);
-
- mpfr_clear (s);
- mpfr_clear (c);
+ MPFR_GROUP_CLEAR (group);
MPFR_SAVE_EXPO_FREE (expo);
return mpfr_check_range (y, inexact, rnd_mode);