summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-02-11 17:01:15 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-02-11 17:01:15 +0000
commit00c03d0e3897e69478d60c0ff13fce9c7081aaa8 (patch)
tree1c4c50fe7dfc7e25ab70ffbc77f84a953e471691
parent35569e37d387d8addc02eafc0a106f2a8c85f2ad (diff)
downloadmpfr-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.c6
-rw-r--r--set_d.c8
-rw-r--r--set_f.c6
-rw-r--r--set_si.c16
-rw-r--r--set_z.c15
-rw-r--r--sqrt.c11
-rw-r--r--sub.c29
7 files changed, 51 insertions, 40 deletions
diff --git a/set.c b/set.c
index b4a151dc5..71bf77b67 100644
--- a/set.c
+++ b/set.c
@@ -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);
}
diff --git a/set_d.c b/set_d.c
index 483c5ff1e..c78794f27 100644
--- a/set_d.c
+++ b/set_d.c
@@ -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
diff --git a/set_f.c b/set_f.c
index d3bb98dbf..3d4b00e0f 100644
--- a/set_f.c
+++ b/set_f.c
@@ -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)
{
diff --git a/set_si.c b/set_si.c
index b2d916cd1..fda046583 100644
--- a/set_si.c
+++ b/set_si.c
@@ -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;
}
diff --git a/set_z.c b/set_z.c
index de9132033..8e7f606a6 100644
--- a/set_z.c
+++ b/set_z.c
@@ -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);
diff --git a/sqrt.c b/sqrt.c
index a34ff6dae..1ba68f2d2 100644
--- a/sqrt.c
+++ b/sqrt.c
@@ -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);
diff --git a/sub.c b/sub.c
index dfe755b73..b8e74f796 100644
--- a/sub.c
+++ b/sub.c
@@ -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;