diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2000-02-11 17:01:15 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2000-02-11 17:01:15 +0000 |
commit | 00c03d0e3897e69478d60c0ff13fce9c7081aaa8 (patch) | |
tree | 1c4c50fe7dfc7e25ab70ffbc77f84a953e471691 | |
parent | 35569e37d387d8addc02eafc0a106f2a8c85f2ad (diff) | |
download | mpfr-00c03d0e3897e69478d60c0ff13fce9c7081aaa8.tar.gz |
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@457 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | set.c | 6 | ||||
-rw-r--r-- | set_d.c | 8 | ||||
-rw-r--r-- | set_f.c | 6 | ||||
-rw-r--r-- | set_si.c | 16 | ||||
-rw-r--r-- | set_z.c | 15 | ||||
-rw-r--r-- | sqrt.c | 11 | ||||
-rw-r--r-- | sub.c | 29 |
7 files changed, 51 insertions, 40 deletions
@@ -26,12 +26,12 @@ MA 02111-1307, USA. */ void #if __STDC__ -mpfr_set4(mpfr_ptr a, mpfr_srcptr b, unsigned char rnd_mode, int signb) +mpfr_set4(mpfr_ptr a, mpfr_srcptr b, mp_rnd_t rnd_mode, int signb) #else mpfr_set4(a, b, rnd_mode) mpfr_ptr a; mpfr_srcptr b; - unsigned char rnd_mode; + mp_rnd_t rnd_mode; int signb; #endif { @@ -49,5 +49,5 @@ mpfr_set4(a, b, rnd_mode) ap[an-1] |= (mp_limb_t) 1 << (BITS_PER_MP_LIMB-1); EXP(a)++; } - if (SIGN(a) != signb) CHANGE_SIGN(a); + if (MPFR_SIGN(a) * signb < 0) CHANGE_SIGN(a); } @@ -236,12 +236,12 @@ __mpfr_scale2 (d, exp) void #if __STDC__ -mpfr_set_d(mpfr_t r, double d, unsigned char rnd_mode) +mpfr_set_d(mpfr_t r, double d, mp_rnd_t rnd_mode) #else mpfr_set_d(r, d, rnd_mode) mpfr_t r; double d; - unsigned char rnd_mode; + mp_rnd_t rnd_mode; #endif { int signd, sizer; unsigned int cnt; @@ -266,7 +266,7 @@ mpfr_set_d(r, d, rnd_mode) if (cnt) mpn_lshift(MANT(r), MANT(r), sizer, cnt); EXP(r) -= cnt; - if (SIZE(r)*signd<0) CHANGE_SIGN(r); + if (MPFR_SIGN(r)*signd<0) CHANGE_SIGN(r); mpfr_round(r, rnd_mode, PREC(r)); return; @@ -294,7 +294,7 @@ mpfr_get_d2(src, e) if (NOTZERO(src)==0) return 0.0; size = 1+(PREC(src)-1)/BITS_PER_MP_LIMB; qp = MANT(src); - negative = (SIGN(src)==-1); + negative = (MPFR_SIGN(src) < 0); /* Warning: don't compute the abs(res) and set the sign afterwards, otherwise the current machine rounding mode will not be taken @@ -27,12 +27,12 @@ MA 02111-1307, USA. */ void #if __STDC__ -mpfr_set_f(mpfr_ptr y, mpf_srcptr x, char rnd_mode) +mpfr_set_f(mpfr_ptr y, mpf_srcptr x, mp_rnd_t rnd_mode) #else mpfr_set_f(y, x, rnd_mode) mpfr_ptr y; mpf_srcptr x; - char rnd_mode; + mp_rnd_t rnd_mode; #endif { mp_limb_t *my, *mx, *tmp; unsigned long cnt, sx, sy; @@ -47,7 +47,7 @@ mpfr_set_f(y, x, rnd_mode) count_leading_zeros(cnt, mx[sx - 1]); - if (SIZ(x)*SIGN(y)<0) CHANGE_SIGN(y); + if (SIZ(x)*MPFR_SIGN(y)<0) CHANGE_SIGN(y); if (sy < sx) { @@ -27,12 +27,12 @@ MA 02111-1307, USA. */ void #if __STDC__ -mpfr_set_si(mpfr_ptr x, long i, unsigned char rnd_mode) +mpfr_set_si(mpfr_ptr x, long int i, mp_rnd_t rnd_mode) #else mpfr_set_si(x, i, rnd_mode) mpfr_ptr x; - long i; - unsigned char rnd_mode; + long int i; + mp_rnd_t rnd_mode; #endif { unsigned long xn, cnt; mp_limb_t ai; @@ -48,19 +48,19 @@ mpfr_set_si(x, i, rnd_mode) MPN_ZERO(MANT(x), xn); x -> _mp_exp = BITS_PER_MP_LIMB - cnt; /* warning: don't change the precision of x! */ - if (i*SIGN(x) < 0) CHANGE_SIGN(x); + if (i*MPFR_SIGN(x) < 0) CHANGE_SIGN(x); return; } void #if __STDC__ -mpfr_set_ui(mpfr_ptr x, unsigned long i, unsigned char rnd_mode) +mpfr_set_ui(mpfr_ptr x, unsigned long int i, mp_rnd_t rnd_mode) #else mpfr_set_ui(x, i, rnd_mode) mpfr_ptr x; - long i; - unsigned char rnd_mode; + long int i; + mp_rnd_t rnd_mode; #endif { unsigned int xn, cnt; @@ -74,7 +74,7 @@ mpfr_set_ui(x, i, rnd_mode) MPN_ZERO(MANT(x), xn); x -> _mp_exp = BITS_PER_MP_LIMB - cnt; /* warning: don't change the precision of x! */ - if (SIGN(x) < 0) CHANGE_SIGN(x); + if (MPFR_SIGN(x) < 0) CHANGE_SIGN(x); return; } @@ -27,25 +27,28 @@ MA 02111-1307, USA. */ /* set f to the integer z */ int #if __STDC__ -mpfr_set_z (mpfr_ptr f, mpz_srcptr z, unsigned char rnd) +mpfr_set_z (mpfr_ptr f, mpz_srcptr z, mp_rnd_t rnd) #else mpfr_set_z (f, z, rnd) - mpfr_ptr f; - mpz_srcptr z; - unsigned char rnd; + mpfr_ptr f; + mpz_srcptr z; + mp_rnd_t rnd; #endif { int fn, zn, k, dif, sign_z, sh; mp_limb_t *fp = MANT(f), *zp, cc, c2; sign_z = mpz_cmp_ui(z,0); - if (sign_z==0) return (SIZE(f)=0); + if (sign_z==0) { + SET_ZERO(f); + return 0; + } fn = 1 + (PREC(f)-1)/BITS_PER_MP_LIMB; zn = ABS(SIZ(z)); dif = zn-fn; zp = PTR(z); count_leading_zeros(k, zp[zn-1]); EXP(f) = zn*BITS_PER_MP_LIMB-k; - if (SIGN(f)*sign_z<0) CHANGE_SIGN(f); + if (MPFR_SIGN(f)*sign_z<0) CHANGE_SIGN(f); if (dif>=0) { /* number has to be truncated */ if (k) { mpn_lshift(fp, zp + dif, fn, k); @@ -30,7 +30,14 @@ MA 02111-1307, USA. */ /* #define DEBUG */ int -mpfr_sqrt (mpfr_ptr r, mpfr_srcptr u, unsigned char rnd_mode) +#if __STDC__ +mpfr_sqrt (mpfr_ptr r, mpfr_srcptr u, mp_rnd_t rnd_mode) +#else +mpfr_sqrt (r, u, rnd_mode) + mpfr_ptr r; + mpfr_srcptr u; + mp_rnd_t rnd_mode; +#endif { mp_ptr up, rp, tmp, remp; mp_size_t usize, rrsize; @@ -43,7 +50,7 @@ mpfr_sqrt (mpfr_ptr r, mpfr_srcptr u, unsigned char rnd_mode) char can_round = 0; TMP_DECL (marker); TMP_DECL(marker0); - if (FLAG_NAN(u) || SIGN(u) == -1) { SET_NAN(r); return 0; } + if (FLAG_NAN(u) || MPFR_SIGN(u) == -1) { SET_NAN(r); return 0; } prec = PREC(r); @@ -27,7 +27,7 @@ MA 02111-1307, USA. */ /* #define DEBUG */ extern void mpfr_add1 _PROTO((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, - unsigned char, int)); + mp_rnd_t, int)); /* put in ap[0]..ap[an-1] the value of bp[0]..bp[n-1] shifted by sh bits to the left minus ap[0]..ap[n-1], with 0 <= sh < mp_bits_per_limb, and @@ -56,13 +56,13 @@ mpn_sub_lshift_n (ap, bp, n, sh, an) mp_limb_t *ap, *bp; int n,sh,an; /* signs of b and c differ, abs(b)>=abs(c), diff_exp>=0 */ void #if __STDC__ -mpfr_sub1(mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, unsigned char rnd_mode, int diff_exp) +mpfr_sub1(mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mp_rnd_t rnd_mode, int diff_exp) #else mpfr_sub1(a, b, c, rnd_mode, diff_exp) mpfr_ptr a; mpfr_srcptr b; - mpfr_srcptr c; - unsigned char rnd_mode; + mpfr_srcptr c; + mp_rnd_t rnd_mode; int diff_exp; #endif { @@ -71,9 +71,9 @@ mpfr_sub1(a, b, c, rnd_mode, diff_exp) TMP_DECL(marker); #ifdef DEBUG - printf("b= "); if (SIGN(b)>=0) putchar(' '); + printf("b= "); if (MPFR_SIGN(b)>=0) putchar(' '); mpfr_print_raw(b); putchar('\n'); - printf("c= "); if (SIGN(c)>=0) putchar(' '); + printf("c= "); if (MPFR_SIGN(c)>=0) putchar(' '); for (k=0;k<diff_exp;k++) putchar(' '); mpfr_print_raw(c); putchar('\n'); printf("b=%1.20e c=%1.20e\n",mpfr_get_d(b),mpfr_get_d(c)); @@ -101,7 +101,7 @@ mpfr_sub1(a, b, c, rnd_mode, diff_exp) cn = (PREC(c)-1)/mp_bits_per_limb + 1; EXP(a) = EXP(b)-cancel; /* adjust sign to that of b */ - if (SIGN(a)*SIGN(b)<0) CHANGE_SIGN(a); + if (MPFR_SIGN(a)*MPFR_SIGN(b)<0) CHANGE_SIGN(a); /* case 1: diff_exp>=prec(a), i.e. c only affects the last bit through rounding */ dif = PREC(a)-diff_exp; @@ -422,7 +422,7 @@ mpfr_print_raw(a); putchar('\n'); end_of_sub: #ifdef DEBUG -printf("b-c="); if (SIGN(a)>0) putchar(' '); mpfr_print_raw(a); putchar('\n'); +printf("b-c="); if (MPFR_SIGN(a)>0) putchar(' '); mpfr_print_raw(a); putchar('\n'); #endif TMP_FREE(marker); return; @@ -430,13 +430,13 @@ printf("b-c="); if (SIGN(a)>0) putchar(' '); mpfr_print_raw(a); putchar('\n'); void #if __STDC__ -mpfr_sub(mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, unsigned char rnd_mode) +mpfr_sub(mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mp_rnd_t rnd_mode) #else mpfr_sub(a, b, c, rnd_mode) - mpfr_ptr a; + mpfr_ptr a; mpfr_srcptr b; - mpfr_srcptr c; - unsigned char rnd_mode; + mpfr_srcptr c; + mp_rnd_t rnd_mode; #endif { int diff_exp; @@ -447,7 +447,8 @@ mpfr_sub(a, b, c, rnd_mode) if (!NOTZERO(c)) { mpfr_set(a, b, rnd_mode); return; } diff_exp = EXP(b)-EXP(c); - if (SIGN(b) == SIGN(c)) { /* signs are equal, it's a real subtraction */ + if (MPFR_SIGN(b) == MPFR_SIGN(c)) { + /* signs are equal, it's a real subtraction */ if (diff_exp<0) { /* exchange rounding modes towards +/- infinity */ if (rnd_mode==GMP_RNDU) rnd_mode=GMP_RNDD; @@ -460,7 +461,7 @@ mpfr_sub(a, b, c, rnd_mode) diff_exp = mpfr_cmp3(b,c,1); /* if b>0 and diff_exp>0 or b<0 and diff_exp<0: abs(b) > abs(c) */ if (diff_exp==0) SET_ZERO(a); - else if (diff_exp*SIGN(b)>0) mpfr_sub1(a, b, c, rnd_mode, 0); + else if (diff_exp*MPFR_SIGN(b)>0) mpfr_sub1(a, b, c, rnd_mode, 0); else { /* exchange rounding modes towards +/- infinity */ if (rnd_mode==GMP_RNDU) rnd_mode=GMP_RNDD; |