summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in53
-rw-r--r--div.c2
-rw-r--r--mpfr-impl.h2
-rw-r--r--mpfr.texi6
-rw-r--r--mul.c2
-rw-r--r--mul_ui.c2
-rw-r--r--round.c122
-rw-r--r--set.c4
-rw-r--r--set_f.c2
-rw-r--r--set_si.c4
-rw-r--r--set_ui.c4
-rw-r--r--sqrt.c2
-rw-r--r--tests/Makefile.in62
13 files changed, 167 insertions, 100 deletions
diff --git a/Makefile.in b/Makefile.in
index 494756c0e..9419e7f4f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -75,7 +75,7 @@ include_HEADERS = mpfr.h mpf2mpfr.h mpfr-test.h
lib_LIBRARIES = libmpfr.a
-libmpfr_a_SOURCES = cputime.h mpfr.h mpfr-impl.h exceptions.c save_expo.c sin_cos.c extract.c add.c add_ui.c add_ulp.c agm.c clear.c cmp.c cmp_abs.c cmp_ui.c div_2exp.c div.c div_ui.c dump.c eq.c exp2.c exp3.c exp.c get_str.c init.c inp_str.c isnan.c log2.c log.c mul_2exp.c mul.c mul_ui.c neg.c out_str.c pi.c pow.c print_raw.c print_rnd_mode.c random2.c random.c reldiff.c rnd_mode.c round.c set.c set_d.c set_dfl_prec.c set_rnd.c set_f.c set_prc_raw.c set_prec.c set_q.c set_si.c set_str.c set_str_raw.c set_ui.c set_z.c sqrt.c sqrt_ui.c sub.c sub_ui.c trunc.c ui_div.c ui_sub.c urandomb.c sqrtrem.c mpz_set_fr.c swap.c factorial.c cosh.c sinh.c tanh.c acosh.c asinh.c atanh.c atan.c cmp2.c exp_2.c asin.c euler.c
+libmpfr_a_SOURCES = cputime.h mpfr.h mpfr-impl.h exceptions.c save_expo.c extract.c add.c add_ui.c add_ulp.c agm.c clear.c cmp.c cmp_abs.c cmp_ui.c div_2exp.c div.c div_ui.c dump.c eq.c exp2.c exp3.c exp.c get_str.c init.c inp_str.c isnan.c log2.c log.c mul_2exp.c mul.c mul_ui.c neg.c out_str.c pi.c pow.c print_raw.c print_rnd_mode.c random2.c random.c reldiff.c rnd_mode.c round.c set.c set_d.c set_dfl_prec.c set_rnd.c set_f.c set_prc_raw.c set_prec.c set_q.c set_si.c set_str.c set_str_raw.c set_ui.c set_z.c sqrt.c sqrt_ui.c sub.c sub_ui.c trunc.c ui_div.c ui_sub.c urandomb.c sqrtrem.c mpz_set_fr.c swap.c factorial.c cosh.c sinh.c tanh.c acosh.c asinh.c atanh.c atan.c cmp2.c exp_2.c asin.c euler.c cos.c sin.c tan.c
libmpfr_a_LIBADD = ceil.o floor.o
info_TEXINFOS = mpfr.texi
@@ -91,17 +91,17 @@ DEFS = @DEFS@ -I. -I$(srcdir)
CPPFLAGS = @CPPFLAGS@
LIBS = @LIBS@
libmpfr_a_DEPENDENCIES = ceil.o floor.o
-libmpfr_a_OBJECTS = exceptions.o save_expo.o sin_cos.o extract.o add.o \
-add_ui.o add_ulp.o agm.o clear.o cmp.o cmp_abs.o cmp_ui.o div_2exp.o \
-div.o div_ui.o dump.o eq.o exp2.o exp3.o exp.o get_str.o init.o \
-inp_str.o isnan.o log2.o log.o mul_2exp.o mul.o mul_ui.o neg.o \
-out_str.o pi.o pow.o print_raw.o print_rnd_mode.o random2.o random.o \
-reldiff.o rnd_mode.o round.o set.o set_d.o set_dfl_prec.o set_rnd.o \
-set_f.o set_prc_raw.o set_prec.o set_q.o set_si.o set_str.o \
-set_str_raw.o set_ui.o set_z.o sqrt.o sqrt_ui.o sub.o sub_ui.o trunc.o \
-ui_div.o ui_sub.o urandomb.o sqrtrem.o mpz_set_fr.o swap.o factorial.o \
-cosh.o sinh.o tanh.o acosh.o asinh.o atanh.o atan.o cmp2.o exp_2.o \
-asin.o euler.o
+libmpfr_a_OBJECTS = exceptions.o save_expo.o extract.o add.o add_ui.o \
+add_ulp.o agm.o clear.o cmp.o cmp_abs.o cmp_ui.o div_2exp.o div.o \
+div_ui.o dump.o eq.o exp2.o exp3.o exp.o get_str.o init.o inp_str.o \
+isnan.o log2.o log.o mul_2exp.o mul.o mul_ui.o neg.o out_str.o pi.o \
+pow.o print_raw.o print_rnd_mode.o random2.o random.o reldiff.o \
+rnd_mode.o round.o set.o set_d.o set_dfl_prec.o set_rnd.o set_f.o \
+set_prc_raw.o set_prec.o set_q.o set_si.o set_str.o set_str_raw.o \
+set_ui.o set_z.o sqrt.o sqrt_ui.o sub.o sub_ui.o trunc.o ui_div.o \
+ui_sub.o urandomb.o sqrtrem.o mpz_set_fr.o swap.o factorial.o cosh.o \
+sinh.o tanh.o acosh.o asinh.o atanh.o atan.o cmp2.o exp_2.o asin.o \
+euler.o cos.o sin.o tan.o
AR = ar
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
@@ -124,20 +124,21 @@ GZIP_ENV = --best
DEP_FILES = .deps/acosh.P .deps/add.P .deps/add_ui.P .deps/add_ulp.P \
.deps/agm.P .deps/asin.P .deps/asinh.P .deps/atan.P .deps/atanh.P \
.deps/clear.P .deps/cmp.P .deps/cmp2.P .deps/cmp_abs.P .deps/cmp_ui.P \
-.deps/cosh.P .deps/div.P .deps/div_2exp.P .deps/div_ui.P .deps/dump.P \
-.deps/eq.P .deps/euler.P .deps/exceptions.P .deps/exp.P .deps/exp2.P \
-.deps/exp3.P .deps/exp_2.P .deps/extract.P .deps/factorial.P \
-.deps/get_str.P .deps/init.P .deps/inp_str.P .deps/isnan.P .deps/log.P \
-.deps/log2.P .deps/mpz_set_fr.P .deps/mul.P .deps/mul_2exp.P \
-.deps/mul_ui.P .deps/neg.P .deps/out_str.P .deps/pi.P .deps/pow.P \
-.deps/print_raw.P .deps/print_rnd_mode.P .deps/random.P .deps/random2.P \
-.deps/reldiff.P .deps/rnd_mode.P .deps/round.P .deps/save_expo.P \
-.deps/set.P .deps/set_d.P .deps/set_dfl_prec.P .deps/set_f.P \
-.deps/set_prc_raw.P .deps/set_prec.P .deps/set_q.P .deps/set_rnd.P \
-.deps/set_si.P .deps/set_str.P .deps/set_str_raw.P .deps/set_ui.P \
-.deps/set_z.P .deps/sin_cos.P .deps/sinh.P .deps/sqrt.P .deps/sqrt_ui.P \
-.deps/sqrtrem.P .deps/sub.P .deps/sub_ui.P .deps/swap.P .deps/tanh.P \
-.deps/trunc.P .deps/ui_div.P .deps/ui_sub.P .deps/urandomb.P
+.deps/cos.P .deps/cosh.P .deps/div.P .deps/div_2exp.P .deps/div_ui.P \
+.deps/dump.P .deps/eq.P .deps/euler.P .deps/exceptions.P .deps/exp.P \
+.deps/exp2.P .deps/exp3.P .deps/exp_2.P .deps/extract.P \
+.deps/factorial.P .deps/get_str.P .deps/init.P .deps/inp_str.P \
+.deps/isnan.P .deps/log.P .deps/log2.P .deps/mpz_set_fr.P .deps/mul.P \
+.deps/mul_2exp.P .deps/mul_ui.P .deps/neg.P .deps/out_str.P .deps/pi.P \
+.deps/pow.P .deps/print_raw.P .deps/print_rnd_mode.P .deps/random.P \
+.deps/random2.P .deps/reldiff.P .deps/rnd_mode.P .deps/round.P \
+.deps/save_expo.P .deps/set.P .deps/set_d.P .deps/set_dfl_prec.P \
+.deps/set_f.P .deps/set_prc_raw.P .deps/set_prec.P .deps/set_q.P \
+.deps/set_rnd.P .deps/set_si.P .deps/set_str.P .deps/set_str_raw.P \
+.deps/set_ui.P .deps/set_z.P .deps/sin.P .deps/sinh.P .deps/sqrt.P \
+.deps/sqrt_ui.P .deps/sqrtrem.P .deps/sub.P .deps/sub_ui.P .deps/swap.P \
+.deps/tan.P .deps/tanh.P .deps/trunc.P .deps/ui_div.P .deps/ui_sub.P \
+.deps/urandomb.P
SOURCES = $(libmpfr_a_SOURCES)
OBJECTS = $(libmpfr_a_OBJECTS)
diff --git a/div.c b/div.c
index bf5ffc371..6e7bc7fd1 100644
--- a/div.c
+++ b/div.c
@@ -244,7 +244,7 @@ mpfr_div (r, u, v, rnd_mode)
if (can_round)
{
cc = mpfr_round_raw(rp, rp, err, (sign_quotient == -1 ? 1 : 0),
- MPFR_PREC(r), rnd_mode);
+ MPFR_PREC(r), rnd_mode, NULL);
}
else {
/* Use the remainder to find out the correct rounding */
diff --git a/mpfr-impl.h b/mpfr-impl.h
index 685255cda..43af5154d 100644
--- a/mpfr-impl.h
+++ b/mpfr-impl.h
@@ -114,7 +114,7 @@ void mpfr_save_emin_emax _PROTO ((void));
void mpfr_restore_emin_emax _PROTO ((void));
int mpfr_round_raw _PROTO ((mp_limb_t *, mp_limb_t *, mp_prec_t, int,
- mp_prec_t, mp_rnd_t));
+ mp_prec_t, mp_rnd_t, int *));
int mpfr_round_raw2 _PROTO((mp_limb_t *, mp_prec_t, int, mp_rnd_t, mp_prec_t));
int mpfr_can_round_raw _PROTO ((mp_limb_t *, mp_prec_t, int, mp_prec_t,
mp_rnd_t, mp_rnd_t, mp_prec_t));
diff --git a/mpfr.texi b/mpfr.texi
index 44d091799..ce44f3d46 100644
--- a/mpfr.texi
+++ b/mpfr.texi
@@ -1220,11 +1220,13 @@ and adds one ulp otherwise.
Always return 0 (result is exact).
@end deftypefun
-@deftypefun int mpfr_round_raw (mp_limb_t* @var{y}, mp_limb_t* @var{x}, mp_prec_t @var{xprec}, int @var{neg}, mp_prec_t @var{yprec}, mp_rnd_t @var{rnd})
+@deftypefun int mpfr_round_raw (mp_limb_t* @var{y}, mp_limb_t* @var{x}, mp_prec_t @var{xprec}, int @var{neg}, mp_prec_t @var{yprec}, mp_rnd_t @var{rnd}, int* @var{inexp})
Puts in mantissa beginning at @var{y} the value of that
beginning at @var{x} (with precision @var{xprec} bits and negative iff
@var{neg} is not zero)
-rounded with mode @var{rnd} to precision @var{yprec}.
+rounded with mode @var{rnd} to precision @var{yprec}; @var{inexp} is either
+a null pointer or a pointer to an integer that will contain the inexact
+ternary value.
@end deftypefun
@deftypefun int mpfr_round_raw2 (mp_limb_t* @var{x}, mp_prec_t @var{xn}, int @var{neg}, mp_rnd_t @var{rnd}, mp_prec_t @var{prec})
diff --git a/mul.c b/mul.c
index 197c7cd89..661dfb223 100644
--- a/mul.c
+++ b/mul.c
@@ -122,7 +122,7 @@ mpfr_mul (a, b, c, rnd_mode)
if (b1 == 0)
mpn_lshift (tmp, tmp, tn, 1);
cc = mpfr_round_raw (ap, tmp, prec_b + prec_c, sign_product < 0, prec_a,
- rnd_mode);
+ rnd_mode, NULL);
if (cc) /* cc = 1 ==> result is a power of two */
ap[an-1] = (mp_limb_t) 1 << (BITS_PER_MP_LIMB-1);
diff --git a/mul_ui.c b/mul_ui.c
index f042c286c..edbb78d34 100644
--- a/mul_ui.c
+++ b/mul_ui.c
@@ -129,7 +129,7 @@ mpfr_mul_ui (y, x, u, rnd_mode)
of y may differ */
sh = ysize - (MPFR_PREC(y) + cnt - 1) / BITS_PER_MP_LIMB;
c = mpfr_round_raw (my + sh, my + dif, MPFR_PREC(x), (MPFR_SIGN(x) < 0),
- MPFR_PREC(y) - BITS_PER_MP_LIMB + cnt, rnd_mode);
+ MPFR_PREC(y) - BITS_PER_MP_LIMB + cnt, rnd_mode, NULL);
/* now the high (BITS_PER_MP_LIMB-cnt) bits of the result are in carry,
and the remaining (yprec-BITS_PER_MP_LIMB+cnt) ones in
diff --git a/round.c b/round.c
index 3102c5721..2b3b1f88a 100644
--- a/round.c
+++ b/round.c
@@ -26,6 +26,10 @@ MA 02111-1307, USA. */
#include "mpfr.h"
#include "mpfr-impl.h"
+#if (BITS_PER_MP_LIMB & (BITS_PER_MP_LIMB - 1))
+#error "BITS_PER_MP_LIMB must be a power of 2"
+#endif
+
/* returns 0 if round(sign*xp[0..xn-1], prec, rnd) =
round(sign*xp[0..xn-1], prec, GMP_RNDZ), 1 otherwise,
where sign=1 if neg=0, sign=-1 otherwise.
@@ -113,55 +117,96 @@ mpfr_round_raw2 (xp, xn, neg, rnd, prec)
*/
int
#if __STDC__
-mpfr_round_raw (mp_limb_t *y, mp_limb_t *xp, mp_prec_t xprec, int negative,
- mp_prec_t yprec, mp_rnd_t rnd_mode)
+mpfr_round_raw (mp_limb_t *yp, mp_limb_t *xp, mp_prec_t xprec, int neg,
+ mp_prec_t yprec, mp_rnd_t rnd_mode, int *inexp)
#else
-mpfr_round_raw (y, xp, xprec, negative, yprec, rnd_mode)
- mp_limb_t *y;
- mp_limb_t *xp;
- mp_prec_t xprec;
- char negative;
- mp_prec_t yprec;
- mp_rnd_t rnd_mode;
+mpfr_round_raw (yp, xp, xprec, neg, yprec, rnd_mode, inexp)
+ mp_limb_t *yp;
+ mp_limb_t *xp;
+ mp_prec_t xprec;
+ int neg;
+ mp_prec_t yprec;
+ mp_rnd_t rnd_mode;
+ int *inexp;
#endif
{
- mp_prec_t nw, xsize; mp_limb_t mask;
- char rw, carry = 0;
+ mp_size_t xsize, nw;
+ mp_limb_t himask, lomask;
+ int rw, carry = 0;
xsize = (xprec-1)/BITS_PER_MP_LIMB + 1;
- nw = yprec / BITS_PER_MP_LIMB; rw = yprec & (BITS_PER_MP_LIMB - 1);
- if (rw) nw++;
- /* number of words needed to represent x */
-
- if (rw)
- mask = ~((((mp_limb_t)1)<<(BITS_PER_MP_LIMB - rw)) - (mp_limb_t)1);
+ nw = yprec / BITS_PER_MP_LIMB;
+ rw = yprec & (BITS_PER_MP_LIMB - 1);
+ if (rw)
+ {
+ nw++;
+ lomask = ((((mp_limb_t)1)<<(BITS_PER_MP_LIMB - rw)) - (mp_limb_t)1);
+ himask = ~lomask;
+ }
else
- mask = ~((mp_limb_t)0);
-
- /* precision is larger than the size of x. No rounding is necessary.
- Just add zeroes at the end */
- if (xsize < nw) {
- /* if y=xp, maybe an overlap: MPN_COPY_DECR is ok when src <= dst */
- MPN_COPY_DECR(y + nw - xsize, xp, xsize);
- MPN_ZERO(y, nw - xsize); /* PZ 27 May 99 */
- y[0] &= mask;
- return 0;
+ {
+ lomask = -1;
+ himask = -1;
}
+ MPFR_ASSERTN(nw >= 1);
+
+ if (xprec <= yprec)
+ { /* No rounding is necessary. */
+ /* if yp=xp, maybe an overlap: MPN_COPY_DECR is ok when src <= dst */
+ MPFR_ASSERTN(nw >= xsize);
+ MPN_COPY_DECR(yp + (nw - xsize), xp, xsize);
+ MPN_ZERO(yp, nw - xsize); /* PZ 27 May 99 */
+ if (inexp) *inexp = 0;
+ }
+ else
+ {
+ mp_limb_t rb, sb;
- if (mpfr_round_raw2(xp, xsize, negative, rnd_mode, yprec))
+ if ((rnd_mode == GMP_RNDU && neg) ||
+ (rnd_mode == GMP_RNDD && !neg))
+ rnd_mode = GMP_RNDZ;
+
+ if (inexp || rnd_mode != GMP_RNDZ)
{
- if (rw)
- carry = mpn_add_1(y, xp + xsize - nw, nw,
- ((mp_limb_t)1) << (BITS_PER_MP_LIMB - rw));
- else
- carry = mpn_add_1(y, xp + xsize - nw, nw, 1);
+ mp_size_t k;
+ mp_limb_t rbmask;
+
+ k = xsize - nw;
+ if (!rw) k--;
+ MPFR_ASSERTN(k >= 0);
+ sb = xp[k] & lomask; /* First non-significant bits */
+ if (rnd_mode == GMP_RNDN)
+ {
+ rbmask = ((mp_limb_t)1) << (BITS_PER_MP_LIMB - rw - 1);
+ rb = sb & rbmask;
+ sb &= ~rbmask;
+ }
+ while (sb == 0 && k > 0)
+ sb = xp[--k];
+ if (rnd_mode == GMP_RNDN && (rb != 0 || sb != 0))
+ {
+ sb = sb == 0 ? xp[xsize - nw] & (himask ^ (himask << 1)) : rb;
+ if (inexp)
+ *inexp = ((neg != 0) ^ (sb != 0)) ? 1 : -1;
+ }
+ else if (inexp)
+ *inexp = sb == 0 ? 0
+ : (((neg != 0) ^ (rnd_mode != GMP_RNDZ)) ? 1 : -1);
}
- else /* now xsize >= nw */
- MPN_COPY_INCR(y, xp + xsize - nw, nw);
+ else
+ sb = 0;
+
+ if (sb != 0 && rnd_mode != GMP_RNDZ)
+ carry = mpn_add_1(yp, xp + xsize - nw, nw,
+ rw ? ((mp_limb_t)1) << (BITS_PER_MP_LIMB - rw) : 1);
+ else
+ MPN_COPY_INCR(yp, xp + xsize - nw, nw);
+
+ yp[0] &= himask;
+ }
- y[0] &= mask;
- return carry;
+ return carry;
}
void
@@ -193,7 +238,8 @@ mpfr_round (x, rnd_mode, prec)
TMP_MARK(marker);
tmp = TMP_ALLOC (nw * BYTES_PER_MP_LIMB);
- carry = mpfr_round_raw(tmp, MPFR_MANT(x), MPFR_PREC(x), neg, prec, rnd_mode);
+ carry = mpfr_round_raw(tmp, MPFR_MANT(x), MPFR_PREC(x), neg, prec, rnd_mode,
+ NULL);
if (carry)
{
diff --git a/set.c b/set.c
index 36d499554..754f53839 100644
--- a/set.c
+++ b/set.c
@@ -25,7 +25,7 @@ MA 02111-1307, USA. */
#include "mpfr.h"
#include "mpfr-impl.h"
-void
+void
#if __STDC__
mpfr_set4 (mpfr_ptr a, mpfr_srcptr b, mp_rnd_t rnd_mode, int signb)
#else
@@ -60,7 +60,7 @@ mpfr_set4 (a, b, rnd_mode, signb)
aq = MPFR_PREC(a);
carry = mpfr_round_raw(ap, MPFR_MANT(b), MPFR_PREC(b), (signb < 0),
- aq, rnd_mode);
+ aq, rnd_mode, NULL);
MPFR_EXP(a) = MPFR_EXP(b);
if (carry)
diff --git a/set_f.c b/set_f.c
index bcdacbfad..91bbbcd85 100644
--- a/set_f.c
+++ b/set_f.c
@@ -60,7 +60,7 @@ mpfr_set_f(y, x, rnd_mode)
tmp = (mp_limb_t*) TMP_ALLOC(xprec);
if (cnt) mpn_lshift(tmp, mx, sx, cnt);
else MPN_COPY(tmp, mx, sx);
- mpfr_round_raw(my, tmp, xprec, (SIZ(x)<0), MPFR_PREC(y), rnd_mode);
+ mpfr_round_raw(my, tmp, xprec, (SIZ(x)<0), MPFR_PREC(y), rnd_mode, NULL);
}
else
{
diff --git a/set_si.c b/set_si.c
index 6facfd346..047a0a1fb 100644
--- a/set_si.c
+++ b/set_si.c
@@ -56,8 +56,8 @@ mpfr_set_si (x, i, rnd_mode)
/* round if MPFR_PREC(x) smaller than length of i */
if (MPFR_PREC(x) < BITS_PER_MP_LIMB-cnt) {
- cnt = mpfr_round_raw(xp+xn, xp+xn, BITS_PER_MP_LIMB-cnt, (ai<0), MPFR_PREC(x),
- rnd_mode);
+ cnt = mpfr_round_raw(xp+xn, xp+xn, BITS_PER_MP_LIMB-cnt, (ai<0),
+ MPFR_PREC(x), rnd_mode, NULL);
if (cnt) { /* special case 1.000...000 */
MPFR_EXP(x)++;
xp[xn] = ((mp_limb_t) 1) << (BITS_PER_MP_LIMB-1);
diff --git a/set_ui.c b/set_ui.c
index ec786b4d2..b622aaa15 100644
--- a/set_ui.c
+++ b/set_ui.c
@@ -57,8 +57,8 @@ mpfr_set_ui (x, i, rnd_mode)
/* round if MPFR_PREC(x) smaller than length of i */
if (MPFR_PREC(x) < BITS_PER_MP_LIMB-cnt) {
- cnt = mpfr_round_raw(xp+xn, xp+xn, BITS_PER_MP_LIMB-cnt, 0, MPFR_PREC(x),
- rnd_mode);
+ cnt = mpfr_round_raw(xp+xn, xp+xn, BITS_PER_MP_LIMB-cnt, 0,
+ MPFR_PREC(x), rnd_mode, NULL);
if (cnt) { /* special case 1.000...000 */
MPFR_EXP(x)++;
xp[xn] = ((mp_limb_t) 1) << (BITS_PER_MP_LIMB-1);
diff --git a/sqrt.c b/sqrt.c
index affcf62e2..b92779f67 100644
--- a/sqrt.c
+++ b/sqrt.c
@@ -203,7 +203,7 @@ mpfr_sqrt (r, u, rnd_mode)
if (can_round)
{
- cc = mpfr_round_raw(rp, rp, err, 0, MPFR_PREC(r), rnd_mode);
+ cc = mpfr_round_raw(rp, rp, err, 0, MPFR_PREC(r), rnd_mode, NULL);
rrsize = (MPFR_PREC(r) - 1)/BITS_PER_MP_LIMB + 1;
}
else
diff --git a/tests/Makefile.in b/tests/Makefile.in
index e04e39d5a..89287ac32 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -66,7 +66,7 @@ PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
-check_PROGRAMS = reuse tabs tadd tagm tcan_round tcmp tcmp2 tcmp_ui tdiv tdiv_ui tdump teq texp tget_str tlog tlog2 tmul tmul_2exp tmul_ui tout_str tpi tpow trandom tround tset_d tset_f tset_q tset_si tset_str tset_z tsqrt tsqrt_ui tui_div tui_sub tsin_cos tswap ttrunc tisnan tget_d tatan tcosh tsinh ttanh tacosh tasinh tatanh thyperbolic texp2 tfactorial tsub tasin teuler
+check_PROGRAMS = reuse tabs tadd tagm tcan_round tcmp tcmp2 tcmp_ui tdiv tdiv_ui tdump teq texp tget_str tlog tlog2 tmul tmul_2exp tmul_ui tout_str tpi tpow trandom tround tset_d tset_f tset_q tset_si tset_str tset_z tsqrt tsqrt_ui tui_div tui_sub tswap ttrunc tisnan tget_d tatan tcosh tsinh ttanh tacosh tasinh tatanh thyperbolic texp2 tfactorial tsub tasin teuler tcos tsin ttan
LDADD = $(top_builddir)/libmpfr.a @LDADD@
INCLUDES = @INCLUDES@ -I$(top_srcdir)
@@ -246,11 +246,6 @@ tui_sub_OBJECTS = tui_sub.o
tui_sub_LDADD = $(LDADD)
tui_sub_DEPENDENCIES = $(top_builddir)/libmpfr.a
tui_sub_LDFLAGS =
-tsin_cos_SOURCES = tsin_cos.c
-tsin_cos_OBJECTS = tsin_cos.o
-tsin_cos_LDADD = $(LDADD)
-tsin_cos_DEPENDENCIES = $(top_builddir)/libmpfr.a
-tsin_cos_LDFLAGS =
tswap_SOURCES = tswap.c
tswap_OBJECTS = tswap.o
tswap_LDADD = $(LDADD)
@@ -336,6 +331,21 @@ teuler_OBJECTS = teuler.o
teuler_LDADD = $(LDADD)
teuler_DEPENDENCIES = $(top_builddir)/libmpfr.a
teuler_LDFLAGS =
+tcos_SOURCES = tcos.c
+tcos_OBJECTS = tcos.o
+tcos_LDADD = $(LDADD)
+tcos_DEPENDENCIES = $(top_builddir)/libmpfr.a
+tcos_LDFLAGS =
+tsin_SOURCES = tsin.c
+tsin_OBJECTS = tsin.o
+tsin_LDADD = $(LDADD)
+tsin_DEPENDENCIES = $(top_builddir)/libmpfr.a
+tsin_LDFLAGS =
+ttan_SOURCES = ttan.c
+ttan_OBJECTS = ttan.o
+ttan_LDADD = $(LDADD)
+ttan_DEPENDENCIES = $(top_builddir)/libmpfr.a
+ttan_LDFLAGS =
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
@@ -349,18 +359,18 @@ GZIP_ENV = --best
DEP_FILES = .deps/reuse.P .deps/tabs.P .deps/tacosh.P .deps/tadd.P \
.deps/tagm.P .deps/tasin.P .deps/tasinh.P .deps/tatan.P .deps/tatanh.P \
.deps/tcan_round.P .deps/tcmp.P .deps/tcmp2.P .deps/tcmp_ui.P \
-.deps/tcosh.P .deps/tdiv.P .deps/tdiv_ui.P .deps/tdump.P .deps/teq.P \
-.deps/teuler.P .deps/texp.P .deps/texp2.P .deps/tfactorial.P \
-.deps/tget_d.P .deps/tget_str.P .deps/thyperbolic.P .deps/tisnan.P \
-.deps/tlog.P .deps/tlog2.P .deps/tmul.P .deps/tmul_2exp.P \
-.deps/tmul_ui.P .deps/tout_str.P .deps/tpi.P .deps/tpow.P \
-.deps/trandom.P .deps/tround.P .deps/tset_d.P .deps/tset_f.P \
-.deps/tset_q.P .deps/tset_si.P .deps/tset_str.P .deps/tset_z.P \
-.deps/tsin_cos.P .deps/tsinh.P .deps/tsqrt.P .deps/tsqrt_ui.P \
-.deps/tsub.P .deps/tswap.P .deps/ttanh.P .deps/ttrunc.P .deps/tui_div.P \
-.deps/tui_sub.P
-SOURCES = reuse.c tabs.c tadd.c tagm.c tcan_round.c tcmp.c tcmp2.c tcmp_ui.c tdiv.c tdiv_ui.c tdump.c teq.c texp.c tget_str.c tlog.c tlog2.c tmul.c tmul_2exp.c tmul_ui.c tout_str.c tpi.c tpow.c trandom.c tround.c tset_d.c tset_f.c tset_q.c tset_si.c tset_str.c tset_z.c tsqrt.c tsqrt_ui.c tui_div.c tui_sub.c tsin_cos.c tswap.c ttrunc.c tisnan.c tget_d.c tatan.c tcosh.c tsinh.c ttanh.c tacosh.c tasinh.c tatanh.c thyperbolic.c texp2.c tfactorial.c tsub.c tasin.c teuler.c
-OBJECTS = reuse.o tabs.o tadd.o tagm.o tcan_round.o tcmp.o tcmp2.o tcmp_ui.o tdiv.o tdiv_ui.o tdump.o teq.o texp.o tget_str.o tlog.o tlog2.o tmul.o tmul_2exp.o tmul_ui.o tout_str.o tpi.o tpow.o trandom.o tround.o tset_d.o tset_f.o tset_q.o tset_si.o tset_str.o tset_z.o tsqrt.o tsqrt_ui.o tui_div.o tui_sub.o tsin_cos.o tswap.o ttrunc.o tisnan.o tget_d.o tatan.o tcosh.o tsinh.o ttanh.o tacosh.o tasinh.o tatanh.o thyperbolic.o texp2.o tfactorial.o tsub.o tasin.o teuler.o
+.deps/tcos.P .deps/tcosh.P .deps/tdiv.P .deps/tdiv_ui.P .deps/tdump.P \
+.deps/teq.P .deps/teuler.P .deps/texp.P .deps/texp2.P \
+.deps/tfactorial.P .deps/tget_d.P .deps/tget_str.P .deps/thyperbolic.P \
+.deps/tisnan.P .deps/tlog.P .deps/tlog2.P .deps/tmul.P \
+.deps/tmul_2exp.P .deps/tmul_ui.P .deps/tout_str.P .deps/tpi.P \
+.deps/tpow.P .deps/trandom.P .deps/tround.P .deps/tset_d.P \
+.deps/tset_f.P .deps/tset_q.P .deps/tset_si.P .deps/tset_str.P \
+.deps/tset_z.P .deps/tsin.P .deps/tsinh.P .deps/tsqrt.P \
+.deps/tsqrt_ui.P .deps/tsub.P .deps/tswap.P .deps/ttan.P .deps/ttanh.P \
+.deps/ttrunc.P .deps/tui_div.P .deps/tui_sub.P
+SOURCES = reuse.c tabs.c tadd.c tagm.c tcan_round.c tcmp.c tcmp2.c tcmp_ui.c tdiv.c tdiv_ui.c tdump.c teq.c texp.c tget_str.c tlog.c tlog2.c tmul.c tmul_2exp.c tmul_ui.c tout_str.c tpi.c tpow.c trandom.c tround.c tset_d.c tset_f.c tset_q.c tset_si.c tset_str.c tset_z.c tsqrt.c tsqrt_ui.c tui_div.c tui_sub.c tswap.c ttrunc.c tisnan.c tget_d.c tatan.c tcosh.c tsinh.c ttanh.c tacosh.c tasinh.c tatanh.c thyperbolic.c texp2.c tfactorial.c tsub.c tasin.c teuler.c tcos.c tsin.c ttan.c
+OBJECTS = reuse.o tabs.o tadd.o tagm.o tcan_round.o tcmp.o tcmp2.o tcmp_ui.o tdiv.o tdiv_ui.o tdump.o teq.o texp.o tget_str.o tlog.o tlog2.o tmul.o tmul_2exp.o tmul_ui.o tout_str.o tpi.o tpow.o trandom.o tround.o tset_d.o tset_f.o tset_q.o tset_si.o tset_str.o tset_z.o tsqrt.o tsqrt_ui.o tui_div.o tui_sub.o tswap.o ttrunc.o tisnan.o tget_d.o tatan.o tcosh.o tsinh.o ttanh.o tacosh.o tasinh.o tatanh.o thyperbolic.o texp2.o tfactorial.o tsub.o tasin.o teuler.o tcos.o tsin.o ttan.o
all: all-redirect
.SUFFIXES:
@@ -534,10 +544,6 @@ tui_sub: $(tui_sub_OBJECTS) $(tui_sub_DEPENDENCIES)
@rm -f tui_sub
$(LINK) $(tui_sub_LDFLAGS) $(tui_sub_OBJECTS) $(tui_sub_LDADD) $(LIBS)
-tsin_cos: $(tsin_cos_OBJECTS) $(tsin_cos_DEPENDENCIES)
- @rm -f tsin_cos
- $(LINK) $(tsin_cos_LDFLAGS) $(tsin_cos_OBJECTS) $(tsin_cos_LDADD) $(LIBS)
-
tswap: $(tswap_OBJECTS) $(tswap_DEPENDENCIES)
@rm -f tswap
$(LINK) $(tswap_LDFLAGS) $(tswap_OBJECTS) $(tswap_LDADD) $(LIBS)
@@ -606,6 +612,18 @@ teuler: $(teuler_OBJECTS) $(teuler_DEPENDENCIES)
@rm -f teuler
$(LINK) $(teuler_LDFLAGS) $(teuler_OBJECTS) $(teuler_LDADD) $(LIBS)
+tcos: $(tcos_OBJECTS) $(tcos_DEPENDENCIES)
+ @rm -f tcos
+ $(LINK) $(tcos_LDFLAGS) $(tcos_OBJECTS) $(tcos_LDADD) $(LIBS)
+
+tsin: $(tsin_OBJECTS) $(tsin_DEPENDENCIES)
+ @rm -f tsin
+ $(LINK) $(tsin_LDFLAGS) $(tsin_OBJECTS) $(tsin_LDADD) $(LIBS)
+
+ttan: $(ttan_OBJECTS) $(ttan_DEPENDENCIES)
+ @rm -f ttan
+ $(LINK) $(ttan_LDFLAGS) $(ttan_OBJECTS) $(ttan_LDADD) $(LIBS)
+
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)